<?xml version="1.0" encoding="ascii"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
          "DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
  <title>androguard</title>
  <link rel="stylesheet" href="epydoc.css" type="text/css" />
  <script type="text/javascript" src="epydoc.js"></script>
</head>

<body bgcolor="white" text="black" link="blue" vlink="#204080"
      alink="#204080">
<!-- ==================== NAVIGATION BAR ==================== -->
<table class="navbar" border="0" width="100%" cellpadding="0"
       bgcolor="#a0c0ff" cellspacing="0">
  <tr valign="middle">

  <!-- Tree link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Index link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Help link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Project homepage -->
      <th class="navbar" align="right" width="100%">
        <table border="0" cellpadding="0" cellspacing="0">
          <tr><th class="navbar" align="center"
            ><a class="navbar" target="_top" href="http://code.google.com/p/androguard/">Androguard</a></th>
          </tr></table></th>
  </tr>
</table>
<table width="100%" cellpadding="0" cellspacing="0">
  <tr valign="top">
    <td width="100%">
      <span class="breadcrumbs">
        Module&nbsp;androguard
      </span>
    </td>
    <td>
      <table cellpadding="0" cellspacing="0">
        <!-- hide/show private -->
        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
        <tr><td align="right"><span class="options"
            >[<a href="frames.html" target="_top">frames</a
            >]&nbsp;|&nbsp;<a href="androguard-pysrc.html"
            target="_top">no&nbsp;frames</a>]</span></td></tr>
      </table>
    </td>
  </tr>
</table>
<h1 class="epydoc">Source Code for <a href="androguard-module.html">Module androguard</a></h1>
<pre class="py-src">
<a name="L1"></a><tt class="py-lineno">  1</tt>  <tt class="py-line"><tt class="py-comment"># This file is part of Androguard.</tt> </tt>
<a name="L2"></a><tt class="py-lineno">  2</tt>  <tt class="py-line"><tt class="py-comment">#</tt> </tt>
<a name="L3"></a><tt class="py-lineno">  3</tt>  <tt class="py-line"><tt class="py-comment"># Copyright (C) 2010, Anthony Desnos &lt;desnos at t0t0.org&gt;</tt> </tt>
<a name="L4"></a><tt class="py-lineno">  4</tt>  <tt class="py-line"><tt class="py-comment"># All rights reserved.</tt> </tt>
<a name="L5"></a><tt class="py-lineno">  5</tt>  <tt class="py-line"><tt class="py-comment">#</tt> </tt>
<a name="L6"></a><tt class="py-lineno">  6</tt>  <tt class="py-line"><tt class="py-comment"># Androguard is free software: you can redistribute it and/or modify</tt> </tt>
<a name="L7"></a><tt class="py-lineno">  7</tt>  <tt class="py-line"><tt class="py-comment"># it under the terms of the GNU Lesser General Public License as published by</tt> </tt>
<a name="L8"></a><tt class="py-lineno">  8</tt>  <tt class="py-line"><tt class="py-comment"># the Free Software Foundation, either version 3 of the License, or</tt> </tt>
<a name="L9"></a><tt class="py-lineno">  9</tt>  <tt class="py-line"><tt class="py-comment"># (at your option) any later version.</tt> </tt>
<a name="L10"></a><tt class="py-lineno"> 10</tt>  <tt class="py-line"><tt class="py-comment">#</tt> </tt>
<a name="L11"></a><tt class="py-lineno"> 11</tt>  <tt class="py-line"><tt class="py-comment"># Androguard is distributed in the hope that it will be useful,</tt> </tt>
<a name="L12"></a><tt class="py-lineno"> 12</tt>  <tt class="py-line"><tt class="py-comment"># but WITHOUT ANY WARRANTY; without even the implied warranty of</tt> </tt>
<a name="L13"></a><tt class="py-lineno"> 13</tt>  <tt class="py-line"><tt class="py-comment"># MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</tt> </tt>
<a name="L14"></a><tt class="py-lineno"> 14</tt>  <tt class="py-line"><tt class="py-comment"># GNU Lesser General Public License for more details.</tt> </tt>
<a name="L15"></a><tt class="py-lineno"> 15</tt>  <tt class="py-line"><tt class="py-comment">#</tt> </tt>
<a name="L16"></a><tt class="py-lineno"> 16</tt>  <tt class="py-line"><tt class="py-comment"># You should have received a copy of the GNU Lesser General Public License</tt> </tt>
<a name="L17"></a><tt class="py-lineno"> 17</tt>  <tt class="py-line"><tt class="py-comment"># along with Androguard.  If not, see &lt;http://www.gnu.org/licenses/&gt;.</tt> </tt>
<a name="L18"></a><tt class="py-lineno"> 18</tt>  <tt class="py-line"> </tt>
<a name="L19"></a><tt class="py-lineno"> 19</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">sys</tt><tt class="py-op">,</tt> <tt class="py-name">xml</tt><tt class="py-op">.</tt><tt class="py-name">dom</tt><tt class="py-op">.</tt><tt class="py-name">minidom</tt><tt class="py-op">,</tt> <tt class="py-name">re</tt><tt class="py-op">,</tt> <tt class="py-name">random</tt><tt class="py-op">,</tt> <tt class="py-name">string</tt><tt class="py-op">,</tt> <tt class="py-name">os</tt> </tt>
<a name="L20"></a><tt class="py-lineno"> 20</tt>  <tt class="py-line"> </tt>
<a name="L21"></a><tt class="py-lineno"> 21</tt>  <tt class="py-line"><tt id="link-0" class="py-name" targets="Variable androguard.PATH_INSTALL=androguard-module.html#PATH_INSTALL"><a title="androguard.PATH_INSTALL" class="py-name" href="#" onclick="return doclink('link-0', 'PATH_INSTALL', 'link-0');">PATH_INSTALL</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"./"</tt> </tt>
<a name="L22"></a><tt class="py-lineno"> 22</tt>  <tt class="py-line"> </tt>
<a name="L23"></a><tt class="py-lineno"> 23</tt>  <tt class="py-line"><tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-1" class="py-name"><a title="androguard.PATH_INSTALL" class="py-name" href="#" onclick="return doclink('link-1', 'PATH_INSTALL', 'link-0');">PATH_INSTALL</a></tt> <tt class="py-op">+</tt> <tt class="py-string">"/core"</tt><tt class="py-op">)</tt> </tt>
<a name="L24"></a><tt class="py-lineno"> 24</tt>  <tt class="py-line"><tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-2" class="py-name"><a title="androguard.PATH_INSTALL" class="py-name" href="#" onclick="return doclink('link-2', 'PATH_INSTALL', 'link-0');">PATH_INSTALL</a></tt> <tt class="py-op">+</tt> <tt class="py-string">"/core/bytecodes"</tt><tt class="py-op">)</tt> </tt>
<a name="L25"></a><tt class="py-lineno"> 25</tt>  <tt class="py-line"><tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-3" class="py-name"><a title="androguard.PATH_INSTALL" class="py-name" href="#" onclick="return doclink('link-3', 'PATH_INSTALL', 'link-0');">PATH_INSTALL</a></tt> <tt class="py-op">+</tt> <tt class="py-string">"/core/predicates"</tt><tt class="py-op">)</tt> </tt>
<a name="L26"></a><tt class="py-lineno"> 26</tt>  <tt class="py-line"><tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-4" class="py-name"><a title="androguard.PATH_INSTALL" class="py-name" href="#" onclick="return doclink('link-4', 'PATH_INSTALL', 'link-0');">PATH_INSTALL</a></tt> <tt class="py-op">+</tt> <tt class="py-string">"/core/analysis"</tt><tt class="py-op">)</tt> </tt>
<a name="L27"></a><tt class="py-lineno"> 27</tt>  <tt class="py-line"><tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-5" class="py-name"><a title="androguard.PATH_INSTALL" class="py-name" href="#" onclick="return doclink('link-5', 'PATH_INSTALL', 'link-0');">PATH_INSTALL</a></tt> <tt class="py-op">+</tt> <tt class="py-string">"/core/vm"</tt><tt class="py-op">)</tt> </tt>
<a name="L28"></a><tt class="py-lineno"> 28</tt>  <tt class="py-line"><tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-6" class="py-name"><a title="androguard.PATH_INSTALL" class="py-name" href="#" onclick="return doclink('link-6', 'PATH_INSTALL', 'link-0');">PATH_INSTALL</a></tt> <tt class="py-op">+</tt> <tt class="py-string">"/core/wm"</tt><tt class="py-op">)</tt> </tt>
<a name="L29"></a><tt class="py-lineno"> 29</tt>  <tt class="py-line"><tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-7" class="py-name"><a title="androguard.PATH_INSTALL" class="py-name" href="#" onclick="return doclink('link-7', 'PATH_INSTALL', 'link-0');">PATH_INSTALL</a></tt> <tt class="py-op">+</tt> <tt class="py-string">"/core/protection"</tt><tt class="py-op">)</tt> </tt>
<a name="L30"></a><tt class="py-lineno"> 30</tt>  <tt class="py-line"><tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-8" class="py-name"><a title="androguard.PATH_INSTALL" class="py-name" href="#" onclick="return doclink('link-8', 'PATH_INSTALL', 'link-0');">PATH_INSTALL</a></tt> <tt class="py-op">+</tt> <tt class="py-string">"/classification"</tt><tt class="py-op">)</tt> </tt>
<a name="L31"></a><tt class="py-lineno"> 31</tt>  <tt class="py-line"> </tt>
<a name="L32"></a><tt class="py-lineno"> 32</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt id="link-9" class="py-name" targets="Module bytecode=bytecode-module.html"><a title="bytecode" class="py-name" href="#" onclick="return doclink('link-9', 'bytecode', 'link-9');">bytecode</a></tt><tt class="py-op">,</tt> <tt id="link-10" class="py-name" targets="Module jvm=jvm-module.html"><a title="jvm" class="py-name" href="#" onclick="return doclink('link-10', 'jvm', 'link-10');">jvm</a></tt><tt class="py-op">,</tt> <tt id="link-11" class="py-name" targets="Module dvm=dvm-module.html"><a title="dvm" class="py-name" href="#" onclick="return doclink('link-11', 'dvm', 'link-11');">dvm</a></tt><tt class="py-op">,</tt> <tt id="link-12" class="py-name" targets="Module apk=apk-module.html"><a title="apk" class="py-name" href="#" onclick="return doclink('link-12', 'apk', 'link-12');">apk</a></tt><tt class="py-op">,</tt> <tt id="link-13" class="py-name" targets="Module misc=misc-module.html"><a title="misc" class="py-name" href="#" onclick="return doclink('link-13', 'misc', 'link-13');">misc</a></tt><tt class="py-op">,</tt> <tt id="link-14" class="py-name" targets="Module analysis=analysis-module.html"><a title="analysis" class="py-name" href="#" onclick="return doclink('link-14', 'analysis', 'link-14');">analysis</a></tt><tt class="py-op">,</tt> <tt class="py-name">opaque</tt> </tt>
<a name="L33"></a><tt class="py-lineno"> 33</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-15" class="py-name" targets="Module error=error-module.html,Function error.error()=error-module.html#error"><a title="error
error.error" class="py-name" href="#" onclick="return doclink('link-15', 'error', 'link-15');">error</a></tt> <tt class="py-keyword">import</tt> <tt id="link-16" class="py-name"><a title="error
error.error" class="py-name" href="#" onclick="return doclink('link-16', 'error', 'link-15');">error</a></tt> </tt>
<a name="L34"></a><tt class="py-lineno"> 34</tt>  <tt class="py-line"> </tt>
<a name="L35"></a><tt class="py-lineno"> 35</tt>  <tt class="py-line"><tt id="link-17" class="py-name" targets="Variable androguard.VM_INT_AUTO=androguard-module.html#VM_INT_AUTO"><a title="androguard.VM_INT_AUTO" class="py-name" href="#" onclick="return doclink('link-17', 'VM_INT_AUTO', 'link-17');">VM_INT_AUTO</a></tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
<a name="L36"></a><tt class="py-lineno"> 36</tt>  <tt class="py-line"><tt id="link-18" class="py-name" targets="Variable androguard.VM_INT_BASIC_MATH_FORMULA=androguard-module.html#VM_INT_BASIC_MATH_FORMULA"><a title="androguard.VM_INT_BASIC_MATH_FORMULA" class="py-name" href="#" onclick="return doclink('link-18', 'VM_INT_BASIC_MATH_FORMULA', 'link-18');">VM_INT_BASIC_MATH_FORMULA</a></tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
<a name="L37"></a><tt class="py-lineno"> 37</tt>  <tt class="py-line"><tt id="link-19" class="py-name" targets="Variable androguard.VM_INT_BASIC_PRNG=androguard-module.html#VM_INT_BASIC_PRNG"><a title="androguard.VM_INT_BASIC_PRNG" class="py-name" href="#" onclick="return doclink('link-19', 'VM_INT_BASIC_PRNG', 'link-19');">VM_INT_BASIC_PRNG</a></tt> <tt class="py-op">=</tt> <tt class="py-number">2</tt> </tt>
<a name="L38"></a><tt class="py-lineno"> 38</tt>  <tt class="py-line"><tt id="link-20" class="py-name" targets="Variable androguard.INVERT_VM_INT_TYPE=androguard-module.html#INVERT_VM_INT_TYPE"><a title="androguard.INVERT_VM_INT_TYPE" class="py-name" href="#" onclick="return doclink('link-20', 'INVERT_VM_INT_TYPE', 'link-20');">INVERT_VM_INT_TYPE</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-string">"VM_INT_AUTO"</tt> <tt class="py-op">:</tt> <tt id="link-21" class="py-name"><a title="androguard.VM_INT_AUTO" class="py-name" href="#" onclick="return doclink('link-21', 'VM_INT_AUTO', 'link-17');">VM_INT_AUTO</a></tt><tt class="py-op">,</tt> </tt>
<a name="L39"></a><tt class="py-lineno"> 39</tt>  <tt class="py-line">                       <tt class="py-string">"VM_INT_BASIC_MATH_FORMULA"</tt> <tt class="py-op">:</tt> <tt id="link-22" class="py-name"><a title="androguard.VM_INT_BASIC_MATH_FORMULA" class="py-name" href="#" onclick="return doclink('link-22', 'VM_INT_BASIC_MATH_FORMULA', 'link-18');">VM_INT_BASIC_MATH_FORMULA</a></tt><tt class="py-op">,</tt> </tt>
<a name="L40"></a><tt class="py-lineno"> 40</tt>  <tt class="py-line">                       <tt class="py-string">"VM_INT_BASIC_PRNG"</tt> <tt class="py-op">:</tt> <tt id="link-23" class="py-name"><a title="androguard.VM_INT_BASIC_PRNG" class="py-name" href="#" onclick="return doclink('link-23', 'VM_INT_BASIC_PRNG', 'link-19');">VM_INT_BASIC_PRNG</a></tt> </tt>
<a name="L41"></a><tt class="py-lineno"> 41</tt>  <tt class="py-line">                     <tt class="py-op">}</tt> </tt>
<a name="VM_int"></a><div id="VM_int-def"><a name="L42"></a><tt class="py-lineno"> 42</tt> <a class="py-toggle" href="#" id="VM_int-toggle" onclick="return toggle('VM_int');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="androguard.VM_int-class.html">VM_int</a> <tt class="py-op">:</tt> </tt>
</div><div id="VM_int-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="VM_int-expanded"><a name="L43"></a><tt class="py-lineno"> 43</tt>  <tt class="py-line">    <tt class="py-docstring">"""VM_int is the main high level Virtual Machine object to protect a method by remplacing all integer contants</tt> </tt>
<a name="L44"></a><tt class="py-lineno"> 44</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
<a name="L45"></a><tt class="py-lineno"> 45</tt>  <tt class="py-line"><tt class="py-docstring">       @param andro : an L{Androguard} / L{AndroguardS} object to have full access to the desired information</tt> </tt>
<a name="L46"></a><tt class="py-lineno"> 46</tt>  <tt class="py-line"><tt class="py-docstring">       @param class_name : the class of the method</tt> </tt>
<a name="L47"></a><tt class="py-lineno"> 47</tt>  <tt class="py-line"><tt class="py-docstring">       @param method_name : the name of the method to protect</tt> </tt>
<a name="L48"></a><tt class="py-lineno"> 48</tt>  <tt class="py-line"><tt class="py-docstring">       @param descriptor : the descriptor of the method</tt> </tt>
<a name="L49"></a><tt class="py-lineno"> 49</tt>  <tt class="py-line"><tt class="py-docstring">       @param vm_int_type : the type of the Virtual Machine</tt> </tt>
<a name="L50"></a><tt class="py-lineno"> 50</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
<a name="VM_int.__init__"></a><div id="VM_int.__init__-def"><a name="L51"></a><tt class="py-lineno"> 51</tt> <a class="py-toggle" href="#" id="VM_int.__init__-toggle" onclick="return toggle('VM_int.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="androguard.VM_int-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">andro</tt><tt class="py-op">,</tt> <tt class="py-param">class_name</tt><tt class="py-op">,</tt> <tt class="py-param">method_name</tt><tt class="py-op">,</tt> <tt class="py-param">descriptor</tt><tt class="py-op">,</tt> <tt class="py-param">vm_int_type</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> </tt>
</div><div id="VM_int.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="VM_int.__init__-expanded"><a name="L52"></a><tt class="py-lineno"> 52</tt>  <tt class="py-line">        <tt class="py-keyword">import</tt> <tt class="py-name">vm</tt> </tt>
<a name="L53"></a><tt class="py-lineno"> 53</tt>  <tt class="py-line"> </tt>
<a name="L54"></a><tt class="py-lineno"> 54</tt>  <tt class="py-line">        <tt class="py-name">method</tt><tt class="py-op">,</tt> <tt class="py-name">_vm</tt> <tt class="py-op">=</tt> <tt class="py-name">andro</tt><tt class="py-op">.</tt><tt id="link-24" class="py-name" targets="Method androguard.Androguard.get_method_descriptor()=androguard.Androguard-class.html#get_method_descriptor,Method dvm.DalvikVMFormat.get_method_descriptor()=dvm.DalvikVMFormat-class.html#get_method_descriptor,Method jvm.JVMFormat.get_method_descriptor()=jvm.JVMFormat-class.html#get_method_descriptor"><a title="androguard.Androguard.get_method_descriptor
dvm.DalvikVMFormat.get_method_descriptor
jvm.JVMFormat.get_method_descriptor" class="py-name" href="#" onclick="return doclink('link-24', 'get_method_descriptor', 'link-24');">get_method_descriptor</a></tt><tt class="py-op">(</tt><tt class="py-name">class_name</tt><tt class="py-op">,</tt> <tt class="py-name">method_name</tt><tt class="py-op">,</tt> <tt class="py-name">descriptor</tt><tt class="py-op">)</tt> </tt>
<a name="L55"></a><tt class="py-lineno"> 55</tt>  <tt class="py-line">        <tt class="py-name">code</tt> <tt class="py-op">=</tt> <tt class="py-name">method</tt><tt class="py-op">.</tt><tt id="link-25" class="py-name" targets="Method dvm.ClassManager.get_code()=dvm.ClassManager-class.html#get_code,Method dvm.CodeItem.get_code()=dvm.CodeItem-class.html#get_code,Method dvm.EncodedMethod.get_code()=dvm.EncodedMethod-class.html#get_code,Method jvm.MethodInfo.get_code()=jvm.MethodInfo-class.html#get_code"><a title="dvm.ClassManager.get_code
dvm.CodeItem.get_code
dvm.EncodedMethod.get_code
jvm.MethodInfo.get_code" class="py-name" href="#" onclick="return doclink('link-25', 'get_code', 'link-25');">get_code</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L56"></a><tt class="py-lineno"> 56</tt>  <tt class="py-line"> </tt>
<a name="L57"></a><tt class="py-lineno"> 57</tt>  <tt class="py-line">        <tt class="py-comment"># LOOP until integers constant !</tt> </tt>
<a name="L58"></a><tt class="py-lineno"> 58</tt>  <tt class="py-line">        <tt class="py-name">iip</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
<a name="L59"></a><tt class="py-lineno"> 59</tt>  <tt class="py-line">        <tt class="py-keyword">while</tt> <tt class="py-name">iip</tt> <tt class="py-op">==</tt> <tt class="py-name">True</tt> <tt class="py-op">:</tt> </tt>
<a name="L60"></a><tt class="py-lineno"> 60</tt>  <tt class="py-line">            <tt class="py-name">idx</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
<a name="L61"></a><tt class="py-lineno"> 61</tt>  <tt class="py-line">            <tt class="py-name">end_iip</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
<a name="L62"></a><tt class="py-lineno"> 62</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt class="py-name">bc</tt> <tt class="py-keyword">in</tt> <tt class="py-name">code</tt><tt class="py-op">.</tt><tt id="link-26" class="py-name" targets="Method androguard.Androguard.get_bc()=androguard.Androguard-class.html#get_bc,Method dvm.DalvikCode.get_bc()=dvm.DalvikCode-class.html#get_bc,Method jvm.CodeAttribute.get_bc()=jvm.CodeAttribute-class.html#get_bc"><a title="androguard.Androguard.get_bc
dvm.DalvikCode.get_bc
jvm.CodeAttribute.get_bc" class="py-name" href="#" onclick="return doclink('link-26', 'get_bc', 'link-26');">get_bc</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-27" class="py-name" targets="Method analysis.BasicBlocks.get()=analysis.BasicBlocks-class.html#get,Method analysis.Stack.get()=analysis.Stack-class.html#get,Method analysis.StackTraces.get()=analysis.StackTraces-class.html#get,Method analysis.TaintedInteger.get()=analysis.TaintedInteger-class.html#get,Method androguard.Androguard.get()=androguard.Androguard-class.html#get,Method androguard.BC.get()=androguard.BC-class.html#get,Method androguard.WM.get()=androguard.WM-class.html#get,Method dvm.DCode.get()=dvm.DCode-class.html#get,Method dvm.IdItem.get()=dvm.IdItem-class.html#get,Method dvm.MethodIdItem.get()=dvm.MethodIdItem-class.html#get,Method dvm.ProtoIdItem.get()=dvm.ProtoIdItem-class.html#get,Method dvm.StringDataItem.get()=dvm.StringDataItem-class.html#get,Method dvm.TypeIdItem.get()=dvm.TypeIdItem-class.html#get,Method jvm.JavaCode.get()=jvm.JavaCode-class.html#get"><a title="analysis.BasicBlocks.get
analysis.Stack.get
analysis.StackTraces.get
analysis.TaintedInteger.get
androguard.Androguard.get
androguard.BC.get
androguard.WM.get
dvm.DCode.get
dvm.IdItem.get
dvm.MethodIdItem.get
dvm.ProtoIdItem.get
dvm.StringDataItem.get
dvm.TypeIdItem.get
jvm.JavaCode.get" class="py-name" href="#" onclick="return doclink('link-27', 'get', 'link-27');">get</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> </tt>
<a name="L63"></a><tt class="py-lineno"> 63</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">bc</tt><tt class="py-op">.</tt><tt id="link-28" class="py-name" targets="Method analysis.DVMBasicBlock.get_name()=analysis.DVMBasicBlock-class.html#get_name,Method analysis.ExternalFM.get_name()=analysis.ExternalFM-class.html#get_name,Method analysis.ExternalMethod.get_name()=analysis.ExternalMethod-class.html#get_name,Method analysis.JVMBasicBlock.get_name()=analysis.JVMBasicBlock-class.html#get_name,Method analysis.PathP.get_name()=analysis.PathP-class.html#get_name,Method analysis.TaintedPackage.get_name()=analysis.TaintedPackage-class.html#get_name,Method dvm.ClassItem.get_name()=dvm.ClassItem-class.html#get_name,Method dvm.DBC.get_name()=dvm.DBC-class.html#get_name,Method dvm.DBCSpe.get_name()=dvm.DBCSpe-class.html#get_name,Method dvm.EncodedField.get_name()=dvm.EncodedField-class.html#get_name,Method dvm.EncodedMethod.get_name()=dvm.EncodedMethod-class.html#get_name,Method dvm.FieldItem.get_name()=dvm.FieldItem-class.html#get_name,Method dvm.FillArrayData.get_name()=dvm.FillArrayData-class.html#get_name,Method dvm.MethodItem.get_name()=dvm.MethodItem-class.html#get_name,Method dvm.PackedSwitch.get_name()=dvm.PackedSwitch-class.html#get_name,Method dvm.SparseSwitch.get_name()=dvm.SparseSwitch-class.html#get_name,Method jvm.AttributeInfo.get_name()=jvm.AttributeInfo-class.html#get_name,Method jvm.CpInfo.get_name()=jvm.CpInfo-class.html#get_name,Method jvm.EmptyConstant.get_name()=jvm.EmptyConstant-class.html#get_name,Method jvm.FieldInfo.get_name()=jvm.FieldInfo-class.html#get_name,Method jvm.JBC.get_name()=jvm.JBC-class.html#get_name,Method jvm.JVMFormat.get_name()=jvm.JVMFormat-class.html#get_name,Method jvm.MethodInfo.get_name()=jvm.MethodInfo-class.html#get_name"><a title="analysis.DVMBasicBlock.get_name
analysis.ExternalFM.get_name
analysis.ExternalMethod.get_name
analysis.JVMBasicBlock.get_name
analysis.PathP.get_name
analysis.TaintedPackage.get_name
dvm.ClassItem.get_name
dvm.DBC.get_name
dvm.DBCSpe.get_name
dvm.EncodedField.get_name
dvm.EncodedMethod.get_name
dvm.FieldItem.get_name
dvm.FillArrayData.get_name
dvm.MethodItem.get_name
dvm.PackedSwitch.get_name
dvm.SparseSwitch.get_name
jvm.AttributeInfo.get_name
jvm.CpInfo.get_name
jvm.EmptyConstant.get_name
jvm.FieldInfo.get_name
jvm.JBC.get_name
jvm.JVMFormat.get_name
jvm.MethodInfo.get_name" class="py-name" href="#" onclick="return doclink('link-28', 'get_name', 'link-28');">get_name</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt> <tt class="py-name">_vm</tt><tt class="py-op">.</tt><tt id="link-29" class="py-name" targets="Method jvm.JVMFormat.get_INTEGER_INSTRUCTIONS()=jvm.JVMFormat-class.html#get_INTEGER_INSTRUCTIONS"><a title="jvm.JVMFormat.get_INTEGER_INSTRUCTIONS" class="py-name" href="#" onclick="return doclink('link-29', 'get_INTEGER_INSTRUCTIONS', 'link-29');">get_INTEGER_INSTRUCTIONS</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> </tt>
<a name="L64"></a><tt class="py-lineno"> 64</tt>  <tt class="py-line">                    <tt class="py-keyword">if</tt> <tt class="py-name">vm_int_type</tt> <tt class="py-op">==</tt> <tt id="link-30" class="py-name"><a title="androguard.VM_INT_BASIC_MATH_FORMULA" class="py-name" href="#" onclick="return doclink('link-30', 'VM_INT_BASIC_MATH_FORMULA', 'link-18');">VM_INT_BASIC_MATH_FORMULA</a></tt> <tt class="py-op">:</tt> </tt>
<a name="L65"></a><tt class="py-lineno"> 65</tt>  <tt class="py-line">                        <tt class="py-name">vi</tt> <tt class="py-op">=</tt> <tt class="py-name">vm</tt><tt class="py-op">.</tt><tt class="py-name">VM_int_basic_math_formula</tt><tt class="py-op">(</tt> <tt class="py-name">class_name</tt><tt class="py-op">,</tt> <tt class="py-name">code</tt><tt class="py-op">,</tt> <tt class="py-name">idx</tt> <tt class="py-op">)</tt> </tt>
<a name="L66"></a><tt class="py-lineno"> 66</tt>  <tt class="py-line">                    <tt class="py-keyword">elif</tt> <tt class="py-name">vm_int_type</tt> <tt class="py-op">==</tt> <tt id="link-31" class="py-name"><a title="androguard.VM_INT_BASIC_PRNG" class="py-name" href="#" onclick="return doclink('link-31', 'VM_INT_BASIC_PRNG', 'link-19');">VM_INT_BASIC_PRNG</a></tt> <tt class="py-op">:</tt> </tt>
<a name="L67"></a><tt class="py-lineno"> 67</tt>  <tt class="py-line">                        <tt class="py-name">vi</tt> <tt class="py-op">=</tt> <tt class="py-name">vm</tt><tt class="py-op">.</tt><tt class="py-name">VM_int_basic_prng</tt><tt class="py-op">(</tt> <tt class="py-name">class_name</tt><tt class="py-op">,</tt> <tt class="py-name">code</tt><tt class="py-op">,</tt> <tt class="py-name">idx</tt> <tt class="py-op">)</tt> </tt>
<a name="L68"></a><tt class="py-lineno"> 68</tt>  <tt class="py-line">                    <tt class="py-keyword">else</tt> <tt class="py-op">:</tt> </tt>
<a name="L69"></a><tt class="py-lineno"> 69</tt>  <tt class="py-line">                        <tt class="py-keyword">raise</tt><tt class="py-op">(</tt><tt class="py-string">"oops"</tt><tt class="py-op">)</tt> </tt>
<a name="L70"></a><tt class="py-lineno"> 70</tt>  <tt class="py-line"> </tt>
<a name="L71"></a><tt class="py-lineno"> 71</tt>  <tt class="py-line">                    <tt class="py-keyword">for</tt> <tt class="py-name">new_method</tt> <tt class="py-keyword">in</tt> <tt class="py-name">vi</tt><tt class="py-op">.</tt><tt id="link-32" class="py-name" targets="Method analysis.BreakBlock.get_methods()=analysis.BreakBlock-class.html#get_methods,Method analysis.TaintedPackage.get_methods()=analysis.TaintedPackage-class.html#get_methods,Method analysis.VMAnalysis.get_methods()=analysis.VMAnalysis-class.html#get_methods,Method dvm.ClassDataItem.get_methods()=dvm.ClassDataItem-class.html#get_methods,Method dvm.ClassItem.get_methods()=dvm.ClassItem-class.html#get_methods,Method dvm.DalvikVMFormat.get_methods()=dvm.DalvikVMFormat-class.html#get_methods,Method jvm.JVMFormat.get_methods()=jvm.JVMFormat-class.html#get_methods"><a title="analysis.BreakBlock.get_methods
analysis.TaintedPackage.get_methods
analysis.VMAnalysis.get_methods
dvm.ClassDataItem.get_methods
dvm.ClassItem.get_methods
dvm.DalvikVMFormat.get_methods
jvm.JVMFormat.get_methods" class="py-name" href="#" onclick="return doclink('link-32', 'get_methods', 'link-32');">get_methods</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> </tt>
<a name="L72"></a><tt class="py-lineno"> 72</tt>  <tt class="py-line">                        <tt class="py-name">_vm</tt><tt class="py-op">.</tt><tt id="link-33" class="py-name" targets="Method androguard.BC.insert_direct_method()=androguard.BC-class.html#insert_direct_method,Method jvm.JVMFormat.insert_direct_method()=jvm.JVMFormat-class.html#insert_direct_method"><a title="androguard.BC.insert_direct_method
jvm.JVMFormat.insert_direct_method" class="py-name" href="#" onclick="return doclink('link-33', 'insert_direct_method', 'link-33');">insert_direct_method</a></tt><tt class="py-op">(</tt> <tt class="py-name">new_method</tt><tt class="py-op">.</tt><tt id="link-34" class="py-name"><a title="analysis.DVMBasicBlock.get_name
analysis.ExternalFM.get_name
analysis.ExternalMethod.get_name
analysis.JVMBasicBlock.get_name
analysis.PathP.get_name
analysis.TaintedPackage.get_name
dvm.ClassItem.get_name
dvm.DBC.get_name
dvm.DBCSpe.get_name
dvm.EncodedField.get_name
dvm.EncodedMethod.get_name
dvm.FieldItem.get_name
dvm.FillArrayData.get_name
dvm.MethodItem.get_name
dvm.PackedSwitch.get_name
dvm.SparseSwitch.get_name
jvm.AttributeInfo.get_name
jvm.CpInfo.get_name
jvm.EmptyConstant.get_name
jvm.FieldInfo.get_name
jvm.JBC.get_name
jvm.JVMFormat.get_name
jvm.MethodInfo.get_name" class="py-name" href="#" onclick="return doclink('link-34', 'get_name', 'link-28');">get_name</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">new_method</tt> <tt class="py-op">)</tt> </tt>
<a name="L73"></a><tt class="py-lineno"> 73</tt>  <tt class="py-line">                    <tt class="py-name">vi</tt><tt class="py-op">.</tt><tt class="py-name">patch_code</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L74"></a><tt class="py-lineno"> 74</tt>  <tt class="py-line"> </tt>
<a name="L75"></a><tt class="py-lineno"> 75</tt>  <tt class="py-line">                    <tt class="py-name">end_iip</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
<a name="L76"></a><tt class="py-lineno"> 76</tt>  <tt class="py-line"> </tt>
<a name="L77"></a><tt class="py-lineno"> 77</tt>  <tt class="py-line">                    <tt class="py-keyword">break</tt> </tt>
<a name="L78"></a><tt class="py-lineno"> 78</tt>  <tt class="py-line">                <tt class="py-name">idx</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
<a name="L79"></a><tt class="py-lineno"> 79</tt>  <tt class="py-line"> </tt>
<a name="L80"></a><tt class="py-lineno"> 80</tt>  <tt class="py-line">            <tt class="py-comment"># We have patched zero integers, it's the end my friend !</tt> </tt>
<a name="L81"></a><tt class="py-lineno"> 81</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">end_iip</tt> <tt class="py-op">==</tt> <tt class="py-name">True</tt> <tt class="py-op">:</tt> </tt>
<a name="L82"></a><tt class="py-lineno"> 82</tt>  <tt class="py-line">                <tt class="py-name">iip</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
<a name="L83"></a><tt class="py-lineno"> 83</tt>  <tt class="py-line"> </tt>
<a name="L84"></a><tt class="py-lineno"> 84</tt>  <tt class="py-line">        <tt class="py-name">method</tt><tt class="py-op">.</tt><tt id="link-35" class="py-name" targets="Method analysis.BreakBlock.show()=analysis.BreakBlock-class.html#show,Method analysis.JVMBasicBlock.show()=analysis.JVMBasicBlock-class.html#show,Method analysis.MethodAnalysis.show()=analysis.MethodAnalysis-class.html#show,Method analysis.Stack.show()=analysis.Stack-class.html#show,Method analysis.StackTraces.show()=analysis.StackTraces-class.html#show,Method analysis.TaintedPackage.show()=analysis.TaintedPackage-class.html#show,Method androguard.Androguard.show()=androguard.Androguard-class.html#show,Method androguard.BC.show()=androguard.BC-class.html#show,Method apk.APK.show()=apk.APK-class.html#show,Method bytecode.MethodBC.show()=bytecode.MethodBC-class.html#show,Method diff.DiffBB.show()=diff.DiffBB-class.html#show,Method diff.Method.show()=diff.Method-class.html#show,Method dvm.AnnotationElement.show()=dvm.AnnotationElement-class.html#show,Method dvm.AnnotationItem.show()=dvm.AnnotationItem-class.html#show,Method dvm.AnnotationOffItem.show()=dvm.AnnotationOffItem-class.html#show,Method dvm.AnnotationSetItem.show()=dvm.AnnotationSetItem-class.html#show,Method dvm.AnnotationSetRefItem.show()=dvm.AnnotationSetRefItem-class.html#show,Method dvm.AnnotationSetRefList.show()=dvm.AnnotationSetRefList-class.html#show,Method dvm.AnnotationsDirectoryItem.show()=dvm.AnnotationsDirectoryItem-class.html#show,Method dvm.ClassDataItem.show()=dvm.ClassDataItem-class.html#show,Method dvm.ClassDefItem.show()=dvm.ClassDefItem-class.html#show,Method dvm.ClassItem.show()=dvm.ClassItem-class.html#show,Method dvm.CodeItem.show()=dvm.CodeItem-class.html#show,Method dvm.DBC.show()=dvm.DBC-class.html#show,Method dvm.DBCSpe.show()=dvm.DBCSpe-class.html#show,Method dvm.DBGBytecode.show()=dvm.DBGBytecode-class.html#show,Method dvm.DCode.show()=dvm.DCode-class.html#show,Method dvm.DalvikCode.show()=dvm.DalvikCode-class.html#show,Method dvm.DalvikVMFormat.show()=dvm.DalvikVMFormat-class.html#show,Method dvm.DebugInfoItem.show()=dvm.DebugInfoItem-class.html#show,Method dvm.DebugInfoItem2.show()=dvm.DebugInfoItem2-class.html#show,Method dvm.EncodedAnnotation.show()=dvm.EncodedAnnotation-class.html#show,Method dvm.EncodedArray.show()=dvm.EncodedArray-class.html#show,Method dvm.EncodedArrayItem.show()=dvm.EncodedArrayItem-class.html#show,Method dvm.EncodedCatchHandler.show()=dvm.EncodedCatchHandler-class.html#show,Method dvm.EncodedCatchHandlerList.show()=dvm.EncodedCatchHandlerList-class.html#show,Method dvm.EncodedField.show()=dvm.EncodedField-class.html#show,Method dvm.EncodedMethod.show()=dvm.EncodedMethod-class.html#show,Method dvm.EncodedTypeAddrPair.show()=dvm.EncodedTypeAddrPair-class.html#show,Method dvm.EncodedValue.show()=dvm.EncodedValue-class.html#show,Method dvm.FieldAnnotation.show()=dvm.FieldAnnotation-class.html#show,Method dvm.FieldItem.show()=dvm.FieldItem-class.html#show,Method dvm.FillArrayData.show()=dvm.FillArrayData-class.html#show,Method dvm.HeaderItem.show()=dvm.HeaderItem-class.html#show,Method dvm.IdItem.show()=dvm.IdItem-class.html#show,Method dvm.MapItem.show()=dvm.MapItem-class.html#show,Method dvm.MapList.show()=dvm.MapList-class.html#show,Method dvm.MethodAnnotation.show()=dvm.MethodAnnotation-class.html#show,Method dvm.MethodIdItem.show()=dvm.MethodIdItem-class.html#show,Method dvm.MethodItem.show()=dvm.MethodItem-class.html#show,Method dvm.PackedSwitch.show()=dvm.PackedSwitch-class.html#show,Method dvm.ParameterAnnotation.show()=dvm.ParameterAnnotation-class.html#show,Method dvm.ProtoIdItem.show()=dvm.ProtoIdItem-class.html#show,Method dvm.ProtoItem.show()=dvm.ProtoItem-class.html#show,Method dvm.SparseSwitch.show()=dvm.SparseSwitch-class.html#show,Method dvm.StringDataItem.show()=dvm.StringDataItem-class.html#show,Method dvm.StringIdItem.show()=dvm.StringIdItem-class.html#show,Method dvm.TypeIdItem.show()=dvm.TypeIdItem-class.html#show,Method dvm.TypeItem.show()=dvm.TypeItem-class.html#show,Method dvm.TypeLItem.show()=dvm.TypeLItem-class.html#show,Method dvm.TypeList.show()=dvm.TypeList-class.html#show,Method jvm.Annotation.show()=jvm.Annotation-class.html#show,Method jvm.AnnotationDefaultAttribute.show()=jvm.AnnotationDefaultAttribute-class.html#show,Method jvm.AppendFrame.show()=jvm.AppendFrame-class.html#show,Method jvm.ArrayValue.show()=jvm.ArrayValue-class.html#show,Method jvm.AttributeInfo.show()=jvm.AttributeInfo-class.html#show,Method jvm.ChopFrame.show()=jvm.ChopFrame-class.html#show,Method jvm.CodeAttribute.show()=jvm.CodeAttribute-class.html#show,Method jvm.ConstantValueAttribute.show()=jvm.ConstantValueAttribute-class.html#show,Method jvm.CpInfo.show()=jvm.CpInfo-class.html#show,Method jvm.DeprecatedAttribute.show()=jvm.DeprecatedAttribute-class.html#show,Method jvm.ElementValue.show()=jvm.ElementValue-class.html#show,Method jvm.ElementValuePair.show()=jvm.ElementValuePair-class.html#show,Method jvm.EmptyConstant.show()=jvm.EmptyConstant-class.html#show,Method jvm.EnclosingMethodAttribute.show()=jvm.EnclosingMethodAttribute-class.html#show,Method jvm.ExceptionsAttribute.show()=jvm.ExceptionsAttribute-class.html#show,Method jvm.FieldInfo.show()=jvm.FieldInfo-class.html#show,Method jvm.FullFrame.show()=jvm.FullFrame-class.html#show,Method jvm.InnerClassesAttribute.show()=jvm.InnerClassesAttribute-class.html#show,Method jvm.InnerClassesDesc.show()=jvm.InnerClassesDesc-class.html#show,Method jvm.JAR.show()=jvm.JAR-class.html#show,Method jvm.JBC.show()=jvm.JBC-class.html#show,Method jvm.JVMFormat.show()=jvm.JVMFormat-class.html#show,Method jvm.JavaCode.show()=jvm.JavaCode-class.html#show,Method jvm.LineNumberTableAttribute.show()=jvm.LineNumberTableAttribute-class.html#show,Method jvm.LocalVariableTableAttribute.show()=jvm.LocalVariableTableAttribute-class.html#show,Method jvm.LocalVariableTypeTableAttribute.show()=jvm.LocalVariableTypeTableAttribute-class.html#show,Method jvm.MethodInfo.show()=jvm.MethodInfo-class.html#show,Method jvm.ParameterAnnotation.show()=jvm.ParameterAnnotation-class.html#show,Method jvm.RuntimeInvisibleAnnotationsAttribute.show()=jvm.RuntimeInvisibleAnnotationsAttribute-class.html#show,Method jvm.RuntimeInvisibleParameterAnnotationsAttribute.show()=jvm.RuntimeInvisibleParameterAnnotationsAttribute-class.html#show,Method jvm.RuntimeVisibleAnnotationsAttribute.show()=jvm.RuntimeVisibleAnnotationsAttribute-class.html#show,Method jvm.RuntimeVisibleParameterAnnotationsAttribute.show()=jvm.RuntimeVisibleParameterAnnotationsAttribute-class.html#show,Method jvm.SameFrame.show()=jvm.SameFrame-class.html#show,Method jvm.SameFrameExtended.show()=jvm.SameFrameExtended-class.html#show,Method jvm.SameLocals1StackItemFrame.show()=jvm.SameLocals1StackItemFrame-class.html#show,Method jvm.SameLocals1StackItemFrameExtended.show()=jvm.SameLocals1StackItemFrameExtended-class.html#show,Method jvm.SignatureAttribute.show()=jvm.SignatureAttribute-class.html#show,Method jvm.SourceDebugExtensionAttribute.show()=jvm.SourceDebugExtensionAttribute-class.html#show,Method jvm.SourceFileAttribute.show()=jvm.SourceFileAttribute-class.html#show,Method jvm.StackMapTableAttribute.show()=jvm.StackMapTableAttribute-class.html#show,Method jvm.SyntheticAttribute.show()=jvm.SyntheticAttribute-class.html#show,Method jvm.VerificationTypeInfo.show()=jvm.VerificationTypeInfo-class.html#show"><a title="analysis.BreakBlock.show
analysis.JVMBasicBlock.show
analysis.MethodAnalysis.show
analysis.Stack.show
analysis.StackTraces.show
analysis.TaintedPackage.show
androguard.Androguard.show
androguard.BC.show
apk.APK.show
bytecode.MethodBC.show
diff.DiffBB.show
diff.Method.show
dvm.AnnotationElement.show
dvm.AnnotationItem.show
dvm.AnnotationOffItem.show
dvm.AnnotationSetItem.show
dvm.AnnotationSetRefItem.show
dvm.AnnotationSetRefList.show
dvm.AnnotationsDirectoryItem.show
dvm.ClassDataItem.show
dvm.ClassDefItem.show
dvm.ClassItem.show
dvm.CodeItem.show
dvm.DBC.show
dvm.DBCSpe.show
dvm.DBGBytecode.show
dvm.DCode.show
dvm.DalvikCode.show
dvm.DalvikVMFormat.show
dvm.DebugInfoItem.show
dvm.DebugInfoItem2.show
dvm.EncodedAnnotation.show
dvm.EncodedArray.show
dvm.EncodedArrayItem.show
dvm.EncodedCatchHandler.show
dvm.EncodedCatchHandlerList.show
dvm.EncodedField.show
dvm.EncodedMethod.show
dvm.EncodedTypeAddrPair.show
dvm.EncodedValue.show
dvm.FieldAnnotation.show
dvm.FieldItem.show
dvm.FillArrayData.show
dvm.HeaderItem.show
dvm.IdItem.show
dvm.MapItem.show
dvm.MapList.show
dvm.MethodAnnotation.show
dvm.MethodIdItem.show
dvm.MethodItem.show
dvm.PackedSwitch.show
dvm.ParameterAnnotation.show
dvm.ProtoIdItem.show
dvm.ProtoItem.show
dvm.SparseSwitch.show
dvm.StringDataItem.show
dvm.StringIdItem.show
dvm.TypeIdItem.show
dvm.TypeItem.show
dvm.TypeLItem.show
dvm.TypeList.show
jvm.Annotation.show
jvm.AnnotationDefaultAttribute.show
jvm.AppendFrame.show
jvm.ArrayValue.show
jvm.AttributeInfo.show
jvm.ChopFrame.show
jvm.CodeAttribute.show
jvm.ConstantValueAttribute.show
jvm.CpInfo.show
jvm.DeprecatedAttribute.show
jvm.ElementValue.show
jvm.ElementValuePair.show
jvm.EmptyConstant.show
jvm.EnclosingMethodAttribute.show
jvm.ExceptionsAttribute.show
jvm.FieldInfo.show
jvm.FullFrame.show
jvm.InnerClassesAttribute.show
jvm.InnerClassesDesc.show
jvm.JAR.show
jvm.JBC.show
jvm.JVMFormat.show
jvm.JavaCode.show
jvm.LineNumberTableAttribute.show
jvm.LocalVariableTableAttribute.show
jvm.LocalVariableTypeTableAttribute.show
jvm.MethodInfo.show
jvm.ParameterAnnotation.show
jvm.RuntimeInvisibleAnnotationsAttribute.show
jvm.RuntimeInvisibleParameterAnnotationsAttribute.show
jvm.RuntimeVisibleAnnotationsAttribute.show
jvm.RuntimeVisibleParameterAnnotationsAttribute.show
jvm.SameFrame.show
jvm.SameFrameExtended.show
jvm.SameLocals1StackItemFrame.show
jvm.SameLocals1StackItemFrameExtended.show
jvm.SignatureAttribute.show
jvm.SourceDebugExtensionAttribute.show
jvm.SourceFileAttribute.show
jvm.StackMapTableAttribute.show
jvm.SyntheticAttribute.show
jvm.VerificationTypeInfo.show" class="py-name" href="#" onclick="return doclink('link-35', 'show', 'link-35');">show</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
</div></div><a name="L85"></a><tt class="py-lineno"> 85</tt>  <tt class="py-line"> </tt>
<a name="WM"></a><div id="WM-def"><a name="L86"></a><tt class="py-lineno"> 86</tt> <a class="py-toggle" href="#" id="WM-toggle" onclick="return toggle('WM');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="androguard.WM-class.html">WM</a> <tt class="py-op">:</tt> </tt>
</div><div id="WM-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="WM-expanded"><a name="WM.__init__"></a><div id="WM.__init__-def"><a name="L87"></a><tt class="py-lineno"> 87</tt> <a class="py-toggle" href="#" id="WM.__init__-toggle" onclick="return toggle('WM.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="androguard.WM-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">andro</tt><tt class="py-op">,</tt> <tt class="py-param">class_name</tt><tt class="py-op">,</tt> <tt class="py-param">wm_type</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> </tt>
</div><div id="WM.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="WM.__init__-expanded"><a name="L88"></a><tt class="py-lineno"> 88</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">wm_type</tt> <tt class="py-op">==</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> <tt class="py-op">:</tt> </tt>
<a name="L89"></a><tt class="py-lineno"> 89</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt><tt class="py-op">(</tt><tt class="py-string">"...."</tt><tt class="py-op">)</tt> </tt>
<a name="L90"></a><tt class="py-lineno"> 90</tt>  <tt class="py-line"> </tt>
<a name="L91"></a><tt class="py-lineno"> 91</tt>  <tt class="py-line">        <tt class="py-keyword">import</tt> <tt class="py-name">wm</tt> </tt>
<a name="L92"></a><tt class="py-lineno"> 92</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_w</tt> <tt class="py-op">=</tt> <tt class="py-name">wm</tt><tt class="py-op">.</tt><tt id="link-36" class="py-name" targets="Class androguard.WM=androguard.WM-class.html"><a title="androguard.WM" class="py-name" href="#" onclick="return doclink('link-36', 'WM', 'link-36');">WM</a></tt><tt class="py-op">(</tt> <tt class="py-name">andro</tt><tt class="py-op">.</tt><tt id="link-37" class="py-name" targets="Method analysis.MethodAnalysis.get_vm()=analysis.MethodAnalysis-class.html#get_vm,Method androguard.AndroguardS.get_vm()=androguard.AndroguardS-class.html#get_vm,Method androguard.BC.get_vm()=androguard.BC-class.html#get_vm"><a title="analysis.MethodAnalysis.get_vm
androguard.AndroguardS.get_vm
androguard.BC.get_vm" class="py-name" href="#" onclick="return doclink('link-37', 'get_vm', 'link-37');">get_vm</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">class_name</tt><tt class="py-op">,</tt> <tt class="py-name">wm_type</tt><tt class="py-op">,</tt> <tt class="py-name">andro</tt><tt class="py-op">.</tt><tt id="link-38" class="py-name" targets="Method androguard.BC.get_analysis()=androguard.BC-class.html#get_analysis"><a title="androguard.BC.get_analysis" class="py-name" href="#" onclick="return doclink('link-38', 'get_analysis', 'link-38');">get_analysis</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt> </tt>
</div><a name="L93"></a><tt class="py-lineno"> 93</tt>  <tt class="py-line"> </tt>
<a name="WM.get"></a><div id="WM.get-def"><a name="L94"></a><tt class="py-lineno"> 94</tt> <a class="py-toggle" href="#" id="WM.get-toggle" onclick="return toggle('WM.get');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="androguard.WM-class.html#get">get</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> </tt>
</div><div id="WM.get-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="WM.get-expanded"><a name="L95"></a><tt class="py-lineno"> 95</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_w</tt> </tt>
</div></div><a name="L96"></a><tt class="py-lineno"> 96</tt>  <tt class="py-line"> </tt>
<a name="WMCheck"></a><div id="WMCheck-def"><a name="L97"></a><tt class="py-lineno"> 97</tt> <a class="py-toggle" href="#" id="WMCheck-toggle" onclick="return toggle('WMCheck');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="androguard.WMCheck-class.html">WMCheck</a> <tt class="py-op">:</tt> </tt>
</div><div id="WMCheck-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="WMCheck-expanded"><a name="WMCheck.__init__"></a><div id="WMCheck.__init__-def"><a name="L98"></a><tt class="py-lineno"> 98</tt> <a class="py-toggle" href="#" id="WMCheck.__init__-toggle" onclick="return toggle('WMCheck.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="androguard.WMCheck-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">andro</tt><tt class="py-op">,</tt> <tt class="py-param">class_name</tt><tt class="py-op">,</tt> <tt class="py-param">input_file</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> </tt>
</div><div id="WMCheck.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="WMCheck.__init__-expanded"><a name="L99"></a><tt class="py-lineno"> 99</tt>  <tt class="py-line">        <tt class="py-name">fd</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">input_file</tt><tt class="py-op">,</tt> <tt class="py-string">"rb"</tt><tt class="py-op">)</tt> </tt>
<a name="L100"></a><tt class="py-lineno">100</tt>  <tt class="py-line">        <tt class="py-name">buffxml</tt> <tt class="py-op">=</tt> <tt class="py-name">fd</tt><tt class="py-op">.</tt><tt id="link-39" class="py-name" targets="Method apk.ChilkatZip.read()=apk.ChilkatZip-class.html#read,Method bytecode.BuffHandle.read()=bytecode.BuffHandle-class.html#read,Method bytecode._Bytecode.read()=bytecode._Bytecode-class.html#read"><a title="apk.ChilkatZip.read
bytecode.BuffHandle.read
bytecode._Bytecode.read" class="py-name" href="#" onclick="return doclink('link-39', 'read', 'link-39');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L101"></a><tt class="py-lineno">101</tt>  <tt class="py-line">        <tt class="py-name">fd</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L102"></a><tt class="py-lineno">102</tt>  <tt class="py-line"> </tt>
<a name="L103"></a><tt class="py-lineno">103</tt>  <tt class="py-line">        <tt class="py-name">document</tt> <tt class="py-op">=</tt> <tt class="py-name">xml</tt><tt class="py-op">.</tt><tt class="py-name">dom</tt><tt class="py-op">.</tt><tt class="py-name">minidom</tt><tt class="py-op">.</tt><tt class="py-name">parseString</tt><tt class="py-op">(</tt><tt class="py-name">buffxml</tt><tt class="py-op">)</tt> </tt>
<a name="L104"></a><tt class="py-lineno">104</tt>  <tt class="py-line"> </tt>
<a name="L105"></a><tt class="py-lineno">105</tt>  <tt class="py-line">        <tt class="py-name">w_orig</tt> <tt class="py-op">=</tt> <tt class="py-name">wm</tt><tt class="py-op">.</tt><tt class="py-name">WMLoad</tt><tt class="py-op">(</tt> <tt class="py-name">document</tt> <tt class="py-op">)</tt> </tt>
<a name="L106"></a><tt class="py-lineno">106</tt>  <tt class="py-line">        <tt class="py-name">w_cmp</tt> <tt class="py-op">=</tt> <tt class="py-name">wm</tt><tt class="py-op">.</tt><tt id="link-40" class="py-name" targets="Class androguard.WMCheck=androguard.WMCheck-class.html"><a title="androguard.WMCheck" class="py-name" href="#" onclick="return doclink('link-40', 'WMCheck', 'link-40');">WMCheck</a></tt><tt class="py-op">(</tt> <tt class="py-name">w_orig</tt><tt class="py-op">,</tt> <tt class="py-name">andro</tt><tt class="py-op">,</tt> <tt class="py-name">andro</tt><tt class="py-op">.</tt><tt id="link-41" class="py-name"><a title="androguard.BC.get_analysis" class="py-name" href="#" onclick="return doclink('link-41', 'get_analysis', 'link-38');">get_analysis</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt> </tt>
</div></div><a name="L107"></a><tt class="py-lineno">107</tt>  <tt class="py-line"> </tt>
<a name="OBFU_NAMES_GEN"></a><div id="OBFU_NAMES_GEN-def"><a name="L108"></a><tt class="py-lineno">108</tt> <a class="py-toggle" href="#" id="OBFU_NAMES_GEN-toggle" onclick="return toggle('OBFU_NAMES_GEN');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="androguard-module.html#OBFU_NAMES_GEN">OBFU_NAMES_GEN</a><tt class="py-op">(</tt><tt class="py-param">prefix</tt><tt class="py-op">=</tt><tt class="py-string">""</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> </tt>
</div><div id="OBFU_NAMES_GEN-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="OBFU_NAMES_GEN-expanded"><a name="L109"></a><tt class="py-lineno">109</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">prefix</tt> <tt class="py-op">+</tt> <tt class="py-name">random</tt><tt class="py-op">.</tt><tt class="py-name">choice</tt><tt class="py-op">(</tt> <tt class="py-name">string</tt><tt class="py-op">.</tt><tt class="py-name">letters</tt> <tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-string">''</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-op">[</tt> <tt class="py-name">random</tt><tt class="py-op">.</tt><tt class="py-name">choice</tt><tt class="py-op">(</tt><tt class="py-name">string</tt><tt class="py-op">.</tt><tt class="py-name">letters</tt> <tt class="py-op">+</tt> <tt class="py-name">string</tt><tt class="py-op">.</tt><tt class="py-name">digits</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt id="link-42" class="py-name" targets="Variable analysis.i=analysis-module.html#i,Variable jvm.i=jvm-module.html#i"><a title="analysis.i
jvm.i" class="py-name" href="#" onclick="return doclink('link-42', 'i', 'link-42');">i</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">10</tt> <tt class="py-op">-</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> <tt class="py-op">]</tt> <tt class="py-op">)</tt> </tt>
</div><a name="L110"></a><tt class="py-lineno">110</tt>  <tt class="py-line"> </tt>
<a name="L111"></a><tt class="py-lineno">111</tt>  <tt class="py-line"><tt id="link-43" class="py-name" targets="Variable androguard.OBFU_NAMES_FIELDS=androguard-module.html#OBFU_NAMES_FIELDS"><a title="androguard.OBFU_NAMES_FIELDS" class="py-name" href="#" onclick="return doclink('link-43', 'OBFU_NAMES_FIELDS', 'link-43');">OBFU_NAMES_FIELDS</a></tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
<a name="L112"></a><tt class="py-lineno">112</tt>  <tt class="py-line"><tt id="link-44" class="py-name" targets="Variable androguard.OBFU_NAMES_METHODS=androguard-module.html#OBFU_NAMES_METHODS"><a title="androguard.OBFU_NAMES_METHODS" class="py-name" href="#" onclick="return doclink('link-44', 'OBFU_NAMES_METHODS', 'link-44');">OBFU_NAMES_METHODS</a></tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
<a name="OBFU_Names"></a><div id="OBFU_Names-def"><a name="L113"></a><tt class="py-lineno">113</tt> <a class="py-toggle" href="#" id="OBFU_Names-toggle" onclick="return toggle('OBFU_Names');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="androguard.OBFU_Names-class.html">OBFU_Names</a> <tt class="py-op">:</tt> </tt>
</div><div id="OBFU_Names-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="OBFU_Names-expanded"><a name="L114"></a><tt class="py-lineno">114</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
<a name="L115"></a><tt class="py-lineno">115</tt>  <tt class="py-line"><tt class="py-docstring">       OBFU_Names is the object that change the name of a field or a method by a random string, and resolving</tt> </tt>
<a name="L116"></a><tt class="py-lineno">116</tt>  <tt class="py-line"><tt class="py-docstring">       dependencies into other files</tt> </tt>
<a name="L117"></a><tt class="py-lineno">117</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
<a name="L118"></a><tt class="py-lineno">118</tt>  <tt class="py-line"><tt class="py-docstring">       @param andro : an L{Androguard} object to have full access to the desired information, and represented a pool of files with the same format</tt> </tt>
<a name="L119"></a><tt class="py-lineno">119</tt>  <tt class="py-line"><tt class="py-docstring">       @param class_name : the class of the method/field (a python regexp)</tt> </tt>
<a name="L120"></a><tt class="py-lineno">120</tt>  <tt class="py-line"><tt class="py-docstring">       @param name : the name of the method/field (a python regexp)</tt> </tt>
<a name="L121"></a><tt class="py-lineno">121</tt>  <tt class="py-line"><tt class="py-docstring">       @param descriptor : the descriptor of the method/field (a python regexp)</tt> </tt>
<a name="L122"></a><tt class="py-lineno">122</tt>  <tt class="py-line"><tt class="py-docstring">       @param obfu_type : the type of the obfuscated (field/method) (OBFU_NAMES_FIELDS, OBFU_NAMES_METHODS)</tt> </tt>
<a name="L123"></a><tt class="py-lineno">123</tt>  <tt class="py-line"><tt class="py-docstring">       @param gen_method : a method which generate random string</tt> </tt>
<a name="L124"></a><tt class="py-lineno">124</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
<a name="OBFU_Names.__init__"></a><div id="OBFU_Names.__init__-def"><a name="L125"></a><tt class="py-lineno">125</tt> <a class="py-toggle" href="#" id="OBFU_Names.__init__-toggle" onclick="return toggle('OBFU_Names.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="androguard.OBFU_Names-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">andro</tt><tt class="py-op">,</tt> <tt class="py-param">class_name</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">,</tt> <tt class="py-param">descriptor</tt><tt class="py-op">,</tt> <tt class="py-param">obfu_type</tt><tt class="py-op">,</tt> <tt class="py-param">gen_method</tt><tt class="py-op">=</tt><tt id="link-45" class="py-name" targets="Function androguard.OBFU_NAMES_GEN()=androguard-module.html#OBFU_NAMES_GEN"><a title="androguard.OBFU_NAMES_GEN" class="py-name" href="#" onclick="return doclink('link-45', 'OBFU_NAMES_GEN', 'link-45');">OBFU_NAMES_GEN</a></tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> </tt>
</div><div id="OBFU_Names.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="OBFU_Names.__init__-expanded"><a name="L126"></a><tt class="py-lineno">126</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">obfu_type</tt> <tt class="py-op">!=</tt> <tt id="link-46" class="py-name"><a title="androguard.OBFU_NAMES_FIELDS" class="py-name" href="#" onclick="return doclink('link-46', 'OBFU_NAMES_FIELDS', 'link-43');">OBFU_NAMES_FIELDS</a></tt> <tt class="py-keyword">and</tt> <tt class="py-name">obfu_type</tt> <tt class="py-op">!=</tt> <tt id="link-47" class="py-name"><a title="androguard.OBFU_NAMES_METHODS" class="py-name" href="#" onclick="return doclink('link-47', 'OBFU_NAMES_METHODS', 'link-44');">OBFU_NAMES_METHODS</a></tt> <tt class="py-op">:</tt> </tt>
<a name="L127"></a><tt class="py-lineno">127</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt><tt class="py-op">(</tt><tt class="py-string">"ooops"</tt><tt class="py-op">)</tt> </tt>
<a name="L128"></a><tt class="py-lineno">128</tt>  <tt class="py-line"> </tt>
<a name="L129"></a><tt class="py-lineno">129</tt>  <tt class="py-line">        <tt class="py-name">re_class_name</tt> <tt class="py-op">=</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">compile</tt><tt class="py-op">(</tt><tt class="py-name">class_name</tt><tt class="py-op">)</tt> </tt>
<a name="L130"></a><tt class="py-lineno">130</tt>  <tt class="py-line">        <tt class="py-name">re_name</tt> <tt class="py-op">=</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">compile</tt><tt class="py-op">(</tt><tt class="py-name">name</tt><tt class="py-op">)</tt> </tt>
<a name="L131"></a><tt class="py-lineno">131</tt>  <tt class="py-line">        <tt class="py-name">re_descriptor</tt> <tt class="py-op">=</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">compile</tt><tt class="py-op">(</tt><tt class="py-name">descriptor</tt><tt class="py-op">)</tt> </tt>
<a name="L132"></a><tt class="py-lineno">132</tt>  <tt class="py-line"> </tt>
<a name="L133"></a><tt class="py-lineno">133</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">obfu_type</tt> <tt class="py-op">==</tt> <tt id="link-48" class="py-name"><a title="androguard.OBFU_NAMES_FIELDS" class="py-name" href="#" onclick="return doclink('link-48', 'OBFU_NAMES_FIELDS', 'link-43');">OBFU_NAMES_FIELDS</a></tt> <tt class="py-op">:</tt> </tt>
<a name="L134"></a><tt class="py-lineno">134</tt>  <tt class="py-line">            <tt class="py-name">search_in</tt> <tt class="py-op">=</tt> <tt class="py-name">andro</tt><tt class="py-op">.</tt><tt id="link-49" class="py-name" targets="Method analysis.BasicBlocks.gets()=analysis.BasicBlocks-class.html#gets,Method analysis.Stack.gets()=analysis.Stack-class.html#gets,Method analysis.TaintedPackage.gets()=analysis.TaintedPackage-class.html#gets,Method androguard.Androguard.gets()=androguard.Androguard-class.html#gets,Method androguard.BC.gets()=androguard.BC-class.html#gets,Method dvm.IdItem.gets()=dvm.IdItem-class.html#gets"><a title="analysis.BasicBlocks.gets
analysis.Stack.gets
analysis.TaintedPackage.gets
androguard.Androguard.gets
androguard.BC.gets
dvm.IdItem.gets" class="py-name" href="#" onclick="return doclink('link-49', 'gets', 'link-49');">gets</a></tt><tt class="py-op">(</tt><tt class="py-string">"fields"</tt><tt class="py-op">)</tt> </tt>
<a name="L135"></a><tt class="py-lineno">135</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-name">obfu_type</tt> <tt class="py-op">==</tt> <tt id="link-50" class="py-name"><a title="androguard.OBFU_NAMES_METHODS" class="py-name" href="#" onclick="return doclink('link-50', 'OBFU_NAMES_METHODS', 'link-44');">OBFU_NAMES_METHODS</a></tt> <tt class="py-op">:</tt> </tt>
<a name="L136"></a><tt class="py-lineno">136</tt>  <tt class="py-line">            <tt class="py-name">search_in</tt> <tt class="py-op">=</tt> <tt class="py-name">andro</tt><tt class="py-op">.</tt><tt id="link-51" class="py-name"><a title="analysis.BasicBlocks.gets
analysis.Stack.gets
analysis.TaintedPackage.gets
androguard.Androguard.gets
androguard.BC.gets
dvm.IdItem.gets" class="py-name" href="#" onclick="return doclink('link-51', 'gets', 'link-49');">gets</a></tt><tt class="py-op">(</tt><tt class="py-string">"methods"</tt><tt class="py-op">)</tt> </tt>
<a name="L137"></a><tt class="py-lineno">137</tt>  <tt class="py-line"> </tt>
<a name="L138"></a><tt class="py-lineno">138</tt>  <tt class="py-line">        <tt class="py-name">depends</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
<a name="L139"></a><tt class="py-lineno">139</tt>  <tt class="py-line"> </tt>
<a name="L140"></a><tt class="py-lineno">140</tt>  <tt class="py-line">        <tt class="py-comment"># Change the name of all fields/methods</tt> </tt>
<a name="L141"></a><tt class="py-lineno">141</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">fm</tt> <tt class="py-keyword">in</tt> <tt class="py-name">search_in</tt> <tt class="py-op">:</tt> </tt>
<a name="L142"></a><tt class="py-lineno">142</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">re_class_name</tt><tt class="py-op">.</tt><tt class="py-name">match</tt><tt class="py-op">(</tt> <tt class="py-name">fm</tt><tt class="py-op">.</tt><tt id="link-52" class="py-name" targets="Method analysis.ExternalFM.get_class_name()=analysis.ExternalFM-class.html#get_class_name,Method analysis.PathP.get_class_name()=analysis.PathP-class.html#get_class_name,Method dvm.EncodedField.get_class_name()=dvm.EncodedField-class.html#get_class_name,Method dvm.EncodedMethod.get_class_name()=dvm.EncodedMethod-class.html#get_class_name,Method dvm.FieldItem.get_class_name()=dvm.FieldItem-class.html#get_class_name,Method jvm.FieldInfo.get_class_name()=jvm.FieldInfo-class.html#get_class_name,Method jvm.MethodInfo.get_class_name()=jvm.MethodInfo-class.html#get_class_name"><a title="analysis.ExternalFM.get_class_name
analysis.PathP.get_class_name
dvm.EncodedField.get_class_name
dvm.EncodedMethod.get_class_name
dvm.FieldItem.get_class_name
jvm.FieldInfo.get_class_name
jvm.MethodInfo.get_class_name" class="py-name" href="#" onclick="return doclink('link-52', 'get_class_name', 'link-52');">get_class_name</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt> <tt class="py-op">:</tt> </tt>
<a name="L143"></a><tt class="py-lineno">143</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">re_name</tt><tt class="py-op">.</tt><tt class="py-name">match</tt><tt class="py-op">(</tt> <tt class="py-name">fm</tt><tt class="py-op">.</tt><tt id="link-53" class="py-name"><a title="analysis.DVMBasicBlock.get_name
analysis.ExternalFM.get_name
analysis.ExternalMethod.get_name
analysis.JVMBasicBlock.get_name
analysis.PathP.get_name
analysis.TaintedPackage.get_name
dvm.ClassItem.get_name
dvm.DBC.get_name
dvm.DBCSpe.get_name
dvm.EncodedField.get_name
dvm.EncodedMethod.get_name
dvm.FieldItem.get_name
dvm.FillArrayData.get_name
dvm.MethodItem.get_name
dvm.PackedSwitch.get_name
dvm.SparseSwitch.get_name
jvm.AttributeInfo.get_name
jvm.CpInfo.get_name
jvm.EmptyConstant.get_name
jvm.FieldInfo.get_name
jvm.JBC.get_name
jvm.JVMFormat.get_name
jvm.MethodInfo.get_name" class="py-name" href="#" onclick="return doclink('link-53', 'get_name', 'link-28');">get_name</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L144"></a><tt class="py-lineno">144</tt>  <tt class="py-line">                    <tt class="py-keyword">if</tt> <tt class="py-name">re_descriptor</tt><tt class="py-op">.</tt><tt class="py-name">match</tt><tt class="py-op">(</tt> <tt class="py-name">fm</tt><tt class="py-op">.</tt><tt id="link-54" class="py-name" targets="Method analysis.ExternalFM.get_descriptor()=analysis.ExternalFM-class.html#get_descriptor,Method analysis.PathP.get_descriptor()=analysis.PathP-class.html#get_descriptor,Method dvm.EncodedField.get_descriptor()=dvm.EncodedField-class.html#get_descriptor,Method dvm.EncodedMethod.get_descriptor()=dvm.EncodedMethod-class.html#get_descriptor,Method dvm.FieldItem.get_descriptor()=dvm.FieldItem-class.html#get_descriptor,Method jvm.FieldInfo.get_descriptor()=jvm.FieldInfo-class.html#get_descriptor,Method jvm.MethodInfo.get_descriptor()=jvm.MethodInfo-class.html#get_descriptor"><a title="analysis.ExternalFM.get_descriptor
analysis.PathP.get_descriptor
dvm.EncodedField.get_descriptor
dvm.EncodedMethod.get_descriptor
dvm.FieldItem.get_descriptor
jvm.FieldInfo.get_descriptor
jvm.MethodInfo.get_descriptor" class="py-name" href="#" onclick="return doclink('link-54', 'get_descriptor', 'link-54');">get_descriptor</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt> <tt class="py-op">:</tt> </tt>
<a name="L145"></a><tt class="py-lineno">145</tt>  <tt class="py-line">                        <tt class="py-name">_</tt><tt class="py-op">,</tt> <tt class="py-name">_vm</tt> <tt class="py-op">=</tt> <tt class="py-name">andro</tt><tt class="py-op">.</tt><tt id="link-55" class="py-name"><a title="androguard.Androguard.get_method_descriptor
dvm.DalvikVMFormat.get_method_descriptor
jvm.JVMFormat.get_method_descriptor" class="py-name" href="#" onclick="return doclink('link-55', 'get_method_descriptor', 'link-24');">get_method_descriptor</a></tt><tt class="py-op">(</tt> <tt class="py-name">fm</tt><tt class="py-op">.</tt><tt id="link-56" class="py-name"><a title="analysis.ExternalFM.get_class_name
analysis.PathP.get_class_name
dvm.EncodedField.get_class_name
dvm.EncodedMethod.get_class_name
dvm.FieldItem.get_class_name
jvm.FieldInfo.get_class_name
jvm.MethodInfo.get_class_name" class="py-name" href="#" onclick="return doclink('link-56', 'get_class_name', 'link-52');">get_class_name</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">fm</tt><tt class="py-op">.</tt><tt id="link-57" class="py-name"><a title="analysis.DVMBasicBlock.get_name
analysis.ExternalFM.get_name
analysis.ExternalMethod.get_name
analysis.JVMBasicBlock.get_name
analysis.PathP.get_name
analysis.TaintedPackage.get_name
dvm.ClassItem.get_name
dvm.DBC.get_name
dvm.DBCSpe.get_name
dvm.EncodedField.get_name
dvm.EncodedMethod.get_name
dvm.FieldItem.get_name
dvm.FillArrayData.get_name
dvm.MethodItem.get_name
dvm.PackedSwitch.get_name
dvm.SparseSwitch.get_name
jvm.AttributeInfo.get_name
jvm.CpInfo.get_name
jvm.EmptyConstant.get_name
jvm.FieldInfo.get_name
jvm.JBC.get_name
jvm.JVMFormat.get_name
jvm.MethodInfo.get_name" class="py-name" href="#" onclick="return doclink('link-57', 'get_name', 'link-28');">get_name</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">fm</tt><tt class="py-op">.</tt><tt id="link-58" class="py-name"><a title="analysis.ExternalFM.get_descriptor
analysis.PathP.get_descriptor
dvm.EncodedField.get_descriptor
dvm.EncodedMethod.get_descriptor
dvm.FieldItem.get_descriptor
jvm.FieldInfo.get_descriptor
jvm.MethodInfo.get_descriptor" class="py-name" href="#" onclick="return doclink('link-58', 'get_descriptor', 'link-54');">get_descriptor</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt> </tt>
<a name="L146"></a><tt class="py-lineno">146</tt>  <tt class="py-line">                        <tt class="py-name">old_name</tt> <tt class="py-op">=</tt> <tt class="py-name">fm</tt><tt class="py-op">.</tt><tt id="link-59" class="py-name"><a title="analysis.DVMBasicBlock.get_name
analysis.ExternalFM.get_name
analysis.ExternalMethod.get_name
analysis.JVMBasicBlock.get_name
analysis.PathP.get_name
analysis.TaintedPackage.get_name
dvm.ClassItem.get_name
dvm.DBC.get_name
dvm.DBCSpe.get_name
dvm.EncodedField.get_name
dvm.EncodedMethod.get_name
dvm.FieldItem.get_name
dvm.FillArrayData.get_name
dvm.MethodItem.get_name
dvm.PackedSwitch.get_name
dvm.SparseSwitch.get_name
jvm.AttributeInfo.get_name
jvm.CpInfo.get_name
jvm.EmptyConstant.get_name
jvm.FieldInfo.get_name
jvm.JBC.get_name
jvm.JVMFormat.get_name
jvm.MethodInfo.get_name" class="py-name" href="#" onclick="return doclink('link-59', 'get_name', 'link-28');">get_name</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L147"></a><tt class="py-lineno">147</tt>  <tt class="py-line">                        <tt class="py-name">new_name</tt> <tt class="py-op">=</tt> <tt class="py-name">gen_method</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L148"></a><tt class="py-lineno">148</tt>  <tt class="py-line"> </tt>
<a name="L149"></a><tt class="py-lineno">149</tt>  <tt class="py-line">                        <tt class="py-comment"># don't change the constructor for a .class file</tt> </tt>
<a name="L150"></a><tt class="py-lineno">150</tt>  <tt class="py-line">                        <tt class="py-keyword">if</tt> <tt class="py-name">obfu_type</tt> <tt class="py-op">==</tt> <tt id="link-60" class="py-name"><a title="androguard.OBFU_NAMES_METHODS" class="py-name" href="#" onclick="return doclink('link-60', 'OBFU_NAMES_METHODS', 'link-44');">OBFU_NAMES_METHODS</a></tt> <tt class="py-op">:</tt> </tt>
<a name="L151"></a><tt class="py-lineno">151</tt>  <tt class="py-line">                            <tt class="py-name">_</tt><tt class="py-op">,</tt> <tt class="py-name">_vm</tt> <tt class="py-op">=</tt> <tt class="py-name">andro</tt><tt class="py-op">.</tt><tt id="link-61" class="py-name"><a title="androguard.Androguard.get_method_descriptor
dvm.DalvikVMFormat.get_method_descriptor
jvm.JVMFormat.get_method_descriptor" class="py-name" href="#" onclick="return doclink('link-61', 'get_method_descriptor', 'link-24');">get_method_descriptor</a></tt><tt class="py-op">(</tt> <tt class="py-name">fm</tt><tt class="py-op">.</tt><tt id="link-62" class="py-name"><a title="analysis.ExternalFM.get_class_name
analysis.PathP.get_class_name
dvm.EncodedField.get_class_name
dvm.EncodedMethod.get_class_name
dvm.FieldItem.get_class_name
jvm.FieldInfo.get_class_name
jvm.MethodInfo.get_class_name" class="py-name" href="#" onclick="return doclink('link-62', 'get_class_name', 'link-52');">get_class_name</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">fm</tt><tt class="py-op">.</tt><tt id="link-63" class="py-name"><a title="analysis.DVMBasicBlock.get_name
analysis.ExternalFM.get_name
analysis.ExternalMethod.get_name
analysis.JVMBasicBlock.get_name
analysis.PathP.get_name
analysis.TaintedPackage.get_name
dvm.ClassItem.get_name
dvm.DBC.get_name
dvm.DBCSpe.get_name
dvm.EncodedField.get_name
dvm.EncodedMethod.get_name
dvm.FieldItem.get_name
dvm.FillArrayData.get_name
dvm.MethodItem.get_name
dvm.PackedSwitch.get_name
dvm.SparseSwitch.get_name
jvm.AttributeInfo.get_name
jvm.CpInfo.get_name
jvm.EmptyConstant.get_name
jvm.FieldInfo.get_name
jvm.JBC.get_name
jvm.JVMFormat.get_name
jvm.MethodInfo.get_name" class="py-name" href="#" onclick="return doclink('link-63', 'get_name', 'link-28');">get_name</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">fm</tt><tt class="py-op">.</tt><tt id="link-64" class="py-name"><a title="analysis.ExternalFM.get_descriptor
analysis.PathP.get_descriptor
dvm.EncodedField.get_descriptor
dvm.EncodedMethod.get_descriptor
dvm.FieldItem.get_descriptor
jvm.FieldInfo.get_descriptor
jvm.MethodInfo.get_descriptor" class="py-name" href="#" onclick="return doclink('link-64', 'get_descriptor', 'link-54');">get_descriptor</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt> </tt>
<a name="L152"></a><tt class="py-lineno">152</tt>  <tt class="py-line">                            <tt class="py-keyword">if</tt> <tt class="py-name">_vm</tt><tt class="py-op">.</tt><tt id="link-65" class="py-name" targets="Method analysis.TaintedVariable.get_type()=analysis.TaintedVariable-class.html#get_type,Method dvm.ClassManager.get_type()=dvm.ClassManager-class.html#get_type,Method dvm.DalvikVMFormat.get_type()=dvm.DalvikVMFormat-class.html#get_type,Method dvm.FieldItem.get_type()=dvm.FieldItem-class.html#get_type,Method dvm.MapItem.get_type()=dvm.MapItem-class.html#get_type,Method dvm.MethodItem.get_type()=dvm.MethodItem-class.html#get_type,Method jvm.JVMFormat.get_type()=jvm.JVMFormat-class.html#get_type"><a title="analysis.TaintedVariable.get_type
dvm.ClassManager.get_type
dvm.DalvikVMFormat.get_type
dvm.FieldItem.get_type
dvm.MapItem.get_type
dvm.MethodItem.get_type
jvm.JVMFormat.get_type" class="py-name" href="#" onclick="return doclink('link-65', 'get_type', 'link-65');">get_type</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-string">"JVM"</tt> <tt class="py-keyword">and</tt> <tt class="py-name">old_name</tt> <tt class="py-op">!=</tt> <tt class="py-string">"&lt;init&gt;"</tt> <tt class="py-op">:</tt> </tt>
<a name="L153"></a><tt class="py-lineno">153</tt>  <tt class="py-line">                                <tt class="py-name">fm</tt><tt class="py-op">.</tt><tt id="link-66" class="py-name" targets="Method jvm.FieldInfo.set_name()=jvm.FieldInfo-class.html#set_name,Method jvm.MethodInfo.set_name()=jvm.MethodInfo-class.html#set_name"><a title="jvm.FieldInfo.set_name
jvm.MethodInfo.set_name" class="py-name" href="#" onclick="return doclink('link-66', 'set_name', 'link-66');">set_name</a></tt><tt class="py-op">(</tt> <tt class="py-name">new_name</tt> <tt class="py-op">)</tt> </tt>
<a name="L154"></a><tt class="py-lineno">154</tt>  <tt class="py-line">                                <tt class="py-name">depends</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt> <tt class="py-op">(</tt><tt class="py-name">fm</tt><tt class="py-op">,</tt> <tt class="py-name">old_name</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt> </tt>
<a name="L155"></a><tt class="py-lineno">155</tt>  <tt class="py-line">                        <tt class="py-keyword">elif</tt> <tt class="py-name">obfu_type</tt> <tt class="py-op">==</tt> <tt id="link-67" class="py-name"><a title="androguard.OBFU_NAMES_FIELDS" class="py-name" href="#" onclick="return doclink('link-67', 'OBFU_NAMES_FIELDS', 'link-43');">OBFU_NAMES_FIELDS</a></tt> <tt class="py-op">:</tt> </tt>
<a name="L156"></a><tt class="py-lineno">156</tt>  <tt class="py-line">                            <tt class="py-name">fm</tt><tt class="py-op">.</tt><tt id="link-68" class="py-name"><a title="jvm.FieldInfo.set_name
jvm.MethodInfo.set_name" class="py-name" href="#" onclick="return doclink('link-68', 'set_name', 'link-66');">set_name</a></tt><tt class="py-op">(</tt> <tt class="py-name">new_name</tt> <tt class="py-op">)</tt> </tt>
<a name="L157"></a><tt class="py-lineno">157</tt>  <tt class="py-line">                            <tt class="py-name">depends</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt> <tt class="py-op">(</tt><tt class="py-name">fm</tt><tt class="py-op">,</tt> <tt class="py-name">old_name</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt> </tt>
<a name="L158"></a><tt class="py-lineno">158</tt>  <tt class="py-line"> </tt>
<a name="L159"></a><tt class="py-lineno">159</tt>  <tt class="py-line">        <tt class="py-comment"># Change the name in others files</tt> </tt>
<a name="L160"></a><tt class="py-lineno">160</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt id="link-69" class="py-name"><a title="analysis.i
jvm.i" class="py-name" href="#" onclick="return doclink('link-69', 'i', 'link-42');">i</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">depends</tt> <tt class="py-op">:</tt> </tt>
<a name="L161"></a><tt class="py-lineno">161</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt class="py-name">_vm</tt> <tt class="py-keyword">in</tt> <tt class="py-name">andro</tt><tt class="py-op">.</tt><tt id="link-70" class="py-name" targets="Method androguard.Androguard.get_vms()=androguard.Androguard-class.html#get_vms"><a title="androguard.Androguard.get_vms" class="py-name" href="#" onclick="return doclink('link-70', 'get_vms', 'link-70');">get_vms</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> </tt>
<a name="L162"></a><tt class="py-lineno">162</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">obfu_type</tt> <tt class="py-op">==</tt> <tt id="link-71" class="py-name"><a title="androguard.OBFU_NAMES_FIELDS" class="py-name" href="#" onclick="return doclink('link-71', 'OBFU_NAMES_FIELDS', 'link-43');">OBFU_NAMES_FIELDS</a></tt> <tt class="py-op">:</tt> </tt>
<a name="L163"></a><tt class="py-lineno">163</tt>  <tt class="py-line">                    <tt class="py-name">_vm</tt><tt class="py-op">.</tt><tt id="link-72" class="py-name" targets="Method jvm.JVMFormat.set_used_field()=jvm.JVMFormat-class.html#set_used_field"><a title="jvm.JVMFormat.set_used_field" class="py-name" href="#" onclick="return doclink('link-72', 'set_used_field', 'link-72');">set_used_field</a></tt><tt class="py-op">(</tt> <tt class="py-op">[</tt> <tt id="link-73" class="py-name"><a title="analysis.i
jvm.i" class="py-name" href="#" onclick="return doclink('link-73', 'i', 'link-42');">i</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-74" class="py-name"><a title="analysis.ExternalFM.get_class_name
analysis.PathP.get_class_name
dvm.EncodedField.get_class_name
dvm.EncodedMethod.get_class_name
dvm.FieldItem.get_class_name
jvm.FieldInfo.get_class_name
jvm.MethodInfo.get_class_name" class="py-name" href="#" onclick="return doclink('link-74', 'get_class_name', 'link-52');">get_class_name</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-75" class="py-name"><a title="analysis.i
jvm.i" class="py-name" href="#" onclick="return doclink('link-75', 'i', 'link-42');">i</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt id="link-76" class="py-name"><a title="analysis.i
jvm.i" class="py-name" href="#" onclick="return doclink('link-76', 'i', 'link-42');">i</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-77" class="py-name"><a title="analysis.ExternalFM.get_descriptor
analysis.PathP.get_descriptor
dvm.EncodedField.get_descriptor
dvm.EncodedMethod.get_descriptor
dvm.FieldItem.get_descriptor
jvm.FieldInfo.get_descriptor
jvm.MethodInfo.get_descriptor" class="py-name" href="#" onclick="return doclink('link-77', 'get_descriptor', 'link-54');">get_descriptor</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt> <tt id="link-78" class="py-name"><a title="analysis.i
jvm.i" class="py-name" href="#" onclick="return doclink('link-78', 'i', 'link-42');">i</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-79" class="py-name"><a title="analysis.ExternalFM.get_class_name
analysis.PathP.get_class_name
dvm.EncodedField.get_class_name
dvm.EncodedMethod.get_class_name
dvm.FieldItem.get_class_name
jvm.FieldInfo.get_class_name
jvm.MethodInfo.get_class_name" class="py-name" href="#" onclick="return doclink('link-79', 'get_class_name', 'link-52');">get_class_name</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-80" class="py-name"><a title="analysis.i
jvm.i" class="py-name" href="#" onclick="return doclink('link-80', 'i', 'link-42');">i</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-81" class="py-name"><a title="analysis.DVMBasicBlock.get_name
analysis.ExternalFM.get_name
analysis.ExternalMethod.get_name
analysis.JVMBasicBlock.get_name
analysis.PathP.get_name
analysis.TaintedPackage.get_name
dvm.ClassItem.get_name
dvm.DBC.get_name
dvm.DBCSpe.get_name
dvm.EncodedField.get_name
dvm.EncodedMethod.get_name
dvm.FieldItem.get_name
dvm.FillArrayData.get_name
dvm.MethodItem.get_name
dvm.PackedSwitch.get_name
dvm.SparseSwitch.get_name
jvm.AttributeInfo.get_name
jvm.CpInfo.get_name
jvm.EmptyConstant.get_name
jvm.FieldInfo.get_name
jvm.JBC.get_name
jvm.JVMFormat.get_name
jvm.MethodInfo.get_name" class="py-name" href="#" onclick="return doclink('link-81', 'get_name', 'link-28');">get_name</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-82" class="py-name"><a title="analysis.i
jvm.i" class="py-name" href="#" onclick="return doclink('link-82', 'i', 'link-42');">i</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-83" class="py-name"><a title="analysis.ExternalFM.get_descriptor
analysis.PathP.get_descriptor
dvm.EncodedField.get_descriptor
dvm.EncodedMethod.get_descriptor
dvm.FieldItem.get_descriptor
jvm.FieldInfo.get_descriptor
jvm.MethodInfo.get_descriptor" class="py-name" href="#" onclick="return doclink('link-83', 'get_descriptor', 'link-54');">get_descriptor</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">]</tt> <tt class="py-op">)</tt> </tt>
<a name="L164"></a><tt class="py-lineno">164</tt>  <tt class="py-line">                <tt class="py-keyword">elif</tt> <tt class="py-name">obfu_type</tt> <tt class="py-op">==</tt> <tt id="link-84" class="py-name"><a title="androguard.OBFU_NAMES_METHODS" class="py-name" href="#" onclick="return doclink('link-84', 'OBFU_NAMES_METHODS', 'link-44');">OBFU_NAMES_METHODS</a></tt> <tt class="py-op">:</tt> </tt>
<a name="L165"></a><tt class="py-lineno">165</tt>  <tt class="py-line">                    <tt class="py-name">_vm</tt><tt class="py-op">.</tt><tt id="link-85" class="py-name" targets="Method jvm.JVMFormat.set_used_method()=jvm.JVMFormat-class.html#set_used_method"><a title="jvm.JVMFormat.set_used_method" class="py-name" href="#" onclick="return doclink('link-85', 'set_used_method', 'link-85');">set_used_method</a></tt><tt class="py-op">(</tt> <tt class="py-op">[</tt> <tt id="link-86" class="py-name"><a title="analysis.i
jvm.i" class="py-name" href="#" onclick="return doclink('link-86', 'i', 'link-42');">i</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-87" class="py-name"><a title="analysis.ExternalFM.get_class_name
analysis.PathP.get_class_name
dvm.EncodedField.get_class_name
dvm.EncodedMethod.get_class_name
dvm.FieldItem.get_class_name
jvm.FieldInfo.get_class_name
jvm.MethodInfo.get_class_name" class="py-name" href="#" onclick="return doclink('link-87', 'get_class_name', 'link-52');">get_class_name</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-88" class="py-name"><a title="analysis.i
jvm.i" class="py-name" href="#" onclick="return doclink('link-88', 'i', 'link-42');">i</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt id="link-89" class="py-name"><a title="analysis.i
jvm.i" class="py-name" href="#" onclick="return doclink('link-89', 'i', 'link-42');">i</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-90" class="py-name"><a title="analysis.ExternalFM.get_descriptor
analysis.PathP.get_descriptor
dvm.EncodedField.get_descriptor
dvm.EncodedMethod.get_descriptor
dvm.FieldItem.get_descriptor
jvm.FieldInfo.get_descriptor
jvm.MethodInfo.get_descriptor" class="py-name" href="#" onclick="return doclink('link-90', 'get_descriptor', 'link-54');">get_descriptor</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt> <tt id="link-91" class="py-name"><a title="analysis.i
jvm.i" class="py-name" href="#" onclick="return doclink('link-91', 'i', 'link-42');">i</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-92" class="py-name"><a title="analysis.ExternalFM.get_class_name
analysis.PathP.get_class_name
dvm.EncodedField.get_class_name
dvm.EncodedMethod.get_class_name
dvm.FieldItem.get_class_name
jvm.FieldInfo.get_class_name
jvm.MethodInfo.get_class_name" class="py-name" href="#" onclick="return doclink('link-92', 'get_class_name', 'link-52');">get_class_name</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-93" class="py-name"><a title="analysis.i
jvm.i" class="py-name" href="#" onclick="return doclink('link-93', 'i', 'link-42');">i</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-94" class="py-name"><a title="analysis.DVMBasicBlock.get_name
analysis.ExternalFM.get_name
analysis.ExternalMethod.get_name
analysis.JVMBasicBlock.get_name
analysis.PathP.get_name
analysis.TaintedPackage.get_name
dvm.ClassItem.get_name
dvm.DBC.get_name
dvm.DBCSpe.get_name
dvm.EncodedField.get_name
dvm.EncodedMethod.get_name
dvm.FieldItem.get_name
dvm.FillArrayData.get_name
dvm.MethodItem.get_name
dvm.PackedSwitch.get_name
dvm.SparseSwitch.get_name
jvm.AttributeInfo.get_name
jvm.CpInfo.get_name
jvm.EmptyConstant.get_name
jvm.FieldInfo.get_name
jvm.JBC.get_name
jvm.JVMFormat.get_name
jvm.MethodInfo.get_name" class="py-name" href="#" onclick="return doclink('link-94', 'get_name', 'link-28');">get_name</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-95" class="py-name"><a title="analysis.i
jvm.i" class="py-name" href="#" onclick="return doclink('link-95', 'i', 'link-42');">i</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-96" class="py-name"><a title="analysis.ExternalFM.get_descriptor
analysis.PathP.get_descriptor
dvm.EncodedField.get_descriptor
dvm.EncodedMethod.get_descriptor
dvm.FieldItem.get_descriptor
jvm.FieldInfo.get_descriptor
jvm.MethodInfo.get_descriptor" class="py-name" href="#" onclick="return doclink('link-96', 'get_descriptor', 'link-54');">get_descriptor</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">]</tt> <tt class="py-op">)</tt> </tt>
</div></div><a name="L166"></a><tt class="py-lineno">166</tt>  <tt class="py-line"> </tt>
<a name="BC"></a><div id="BC-def"><a name="L167"></a><tt class="py-lineno">167</tt> <a class="py-toggle" href="#" id="BC-toggle" onclick="return toggle('BC');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="androguard.BC-class.html">BC</a> <tt class="py-op">:</tt> </tt>
</div><div id="BC-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="BC-expanded"><a name="BC.__init__"></a><div id="BC.__init__-def"><a name="L168"></a><tt class="py-lineno">168</tt> <a class="py-toggle" href="#" id="BC.__init__-toggle" onclick="return toggle('BC.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="androguard.BC-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">bc</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> </tt>
</div><div id="BC.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="BC.__init__-expanded"><a name="L169"></a><tt class="py-lineno">169</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__bc</tt> <tt class="py-op">=</tt> <tt class="py-name">bc</tt> </tt>
</div><a name="L170"></a><tt class="py-lineno">170</tt>  <tt class="py-line"> </tt>
<a name="BC.get_vm"></a><div id="BC.get_vm-def"><a name="L171"></a><tt class="py-lineno">171</tt> <a class="py-toggle" href="#" id="BC.get_vm-toggle" onclick="return toggle('BC.get_vm');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="androguard.BC-class.html#get_vm">get_vm</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> </tt>
</div><div id="BC.get_vm-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="BC.get_vm-expanded"><a name="L172"></a><tt class="py-lineno">172</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__bc</tt> </tt>
</div><a name="L173"></a><tt class="py-lineno">173</tt>  <tt class="py-line"> </tt>
<a name="BC.get_analysis"></a><div id="BC.get_analysis-def"><a name="L174"></a><tt class="py-lineno">174</tt> <a class="py-toggle" href="#" id="BC.get_analysis-toggle" onclick="return toggle('BC.get_analysis');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="androguard.BC-class.html#get_analysis">get_analysis</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> </tt>
</div><div id="BC.get_analysis-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="BC.get_analysis-expanded"><a name="L175"></a><tt class="py-lineno">175</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__a</tt> </tt>
</div><a name="L176"></a><tt class="py-lineno">176</tt>  <tt class="py-line"> </tt>
<a name="BC.analyze"></a><div id="BC.analyze-def"><a name="L177"></a><tt class="py-lineno">177</tt> <a class="py-toggle" href="#" id="BC.analyze-toggle" onclick="return toggle('BC.analyze');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="androguard.BC-class.html#analyze">analyze</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> </tt>
</div><div id="BC.analyze-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="BC.analyze-expanded"><a name="L178"></a><tt class="py-lineno">178</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__a</tt> <tt class="py-op">=</tt> <tt id="link-97" class="py-name"><a title="analysis" class="py-name" href="#" onclick="return doclink('link-97', 'analysis', 'link-14');">analysis</a></tt><tt class="py-op">.</tt><tt id="link-98" class="py-name" targets="Class analysis.VMAnalysis=analysis.VMAnalysis-class.html"><a title="analysis.VMAnalysis" class="py-name" href="#" onclick="return doclink('link-98', 'VMAnalysis', 'link-98');">VMAnalysis</a></tt><tt class="py-op">(</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__bc</tt><tt class="py-op">,</tt> <tt class="py-name">code_analysis</tt><tt class="py-op">=</tt><tt class="py-name">True</tt> <tt class="py-op">)</tt> </tt>
</div><a name="L179"></a><tt class="py-lineno">179</tt>  <tt class="py-line"> </tt>
<a name="BC._get"></a><div id="BC._get-def"><a name="L180"></a><tt class="py-lineno">180</tt> <a class="py-toggle" href="#" id="BC._get-toggle" onclick="return toggle('BC._get');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="androguard.BC-class.html#_get">_get</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">val</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> </tt>
</div><div id="BC._get-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="BC._get-expanded"><a name="L181"></a><tt class="py-lineno">181</tt>  <tt class="py-line">        <tt class="py-name">l</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
<a name="L182"></a><tt class="py-lineno">182</tt>  <tt class="py-line">        <tt class="py-name">r</tt> <tt class="py-op">=</tt> <tt class="py-name">getattr</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__bc</tt><tt class="py-op">,</tt> <tt class="py-name">val</tt><tt class="py-op">)</tt><tt class="py-op">(</tt><tt class="py-name">name</tt><tt class="py-op">)</tt> </tt>
<a name="L183"></a><tt class="py-lineno">183</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt id="link-99" class="py-name"><a title="analysis.i
jvm.i" class="py-name" href="#" onclick="return doclink('link-99', 'i', 'link-42');">i</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">r</tt> <tt class="py-op">:</tt> </tt>
<a name="L184"></a><tt class="py-lineno">184</tt>  <tt class="py-line">            <tt class="py-name">l</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt> <tt id="link-100" class="py-name"><a title="analysis.i
jvm.i" class="py-name" href="#" onclick="return doclink('link-100', 'i', 'link-42');">i</a></tt> <tt class="py-op">)</tt> </tt>
<a name="L185"></a><tt class="py-lineno">185</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">l</tt> </tt>
</div><a name="L186"></a><tt class="py-lineno">186</tt>  <tt class="py-line"> </tt>
<a name="BC._gets"></a><div id="BC._gets-def"><a name="L187"></a><tt class="py-lineno">187</tt> <a class="py-toggle" href="#" id="BC._gets-toggle" onclick="return toggle('BC._gets');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="androguard.BC-class.html#_gets">_gets</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">val</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> </tt>
</div><div id="BC._gets-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="BC._gets-expanded"><a name="L188"></a><tt class="py-lineno">188</tt>  <tt class="py-line">        <tt class="py-name">l</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
<a name="L189"></a><tt class="py-lineno">189</tt>  <tt class="py-line">        <tt class="py-name">r</tt> <tt class="py-op">=</tt> <tt class="py-name">getattr</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__bc</tt><tt class="py-op">,</tt> <tt class="py-name">val</tt><tt class="py-op">)</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L190"></a><tt class="py-lineno">190</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt id="link-101" class="py-name"><a title="analysis.i
jvm.i" class="py-name" href="#" onclick="return doclink('link-101', 'i', 'link-42');">i</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">r</tt> <tt class="py-op">:</tt> </tt>
<a name="L191"></a><tt class="py-lineno">191</tt>  <tt class="py-line">            <tt class="py-name">l</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt> <tt id="link-102" class="py-name"><a title="analysis.i
jvm.i" class="py-name" href="#" onclick="return doclink('link-102', 'i', 'link-42');">i</a></tt> <tt class="py-op">)</tt> </tt>
<a name="L192"></a><tt class="py-lineno">192</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">l</tt> </tt>
</div><a name="L193"></a><tt class="py-lineno">193</tt>  <tt class="py-line"> </tt>
<a name="BC.gets"></a><div id="BC.gets-def"><a name="L194"></a><tt class="py-lineno">194</tt> <a class="py-toggle" href="#" id="BC.gets-toggle" onclick="return toggle('BC.gets');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="androguard.BC-class.html#gets">gets</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> </tt>
</div><div id="BC.gets-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="BC.gets-expanded"><a name="L195"></a><tt class="py-lineno">195</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-103" class="py-name" targets="Method androguard.BC._gets()=androguard.BC-class.html#_gets"><a title="androguard.BC._gets" class="py-name" href="#" onclick="return doclink('link-103', '_gets', 'link-103');">_gets</a></tt><tt class="py-op">(</tt><tt class="py-string">"get_"</tt> <tt class="py-op">+</tt> <tt class="py-name">name</tt><tt class="py-op">)</tt> </tt>
</div><a name="L196"></a><tt class="py-lineno">196</tt>  <tt class="py-line"> </tt>
<a name="BC.get"></a><div id="BC.get-def"><a name="L197"></a><tt class="py-lineno">197</tt> <a class="py-toggle" href="#" id="BC.get-toggle" onclick="return toggle('BC.get');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="androguard.BC-class.html#get">get</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">val</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> </tt>
</div><div id="BC.get-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="BC.get-expanded"><a name="L198"></a><tt class="py-lineno">198</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-104" class="py-name" targets="Method androguard.BC._get()=androguard.BC-class.html#_get,Method bytecode.SV._get()=bytecode.SV-class.html#_get,Method bytecode.SVs._get()=bytecode.SVs-class.html#_get"><a title="androguard.BC._get
bytecode.SV._get
bytecode.SVs._get" class="py-name" href="#" onclick="return doclink('link-104', '_get', 'link-104');">_get</a></tt><tt class="py-op">(</tt><tt class="py-string">"get_"</tt> <tt class="py-op">+</tt> <tt class="py-name">val</tt><tt class="py-op">,</tt> <tt class="py-name">name</tt><tt class="py-op">)</tt> </tt>
</div><a name="L199"></a><tt class="py-lineno">199</tt>  <tt class="py-line"> </tt>
<a name="BC.insert_direct_method"></a><div id="BC.insert_direct_method-def"><a name="L200"></a><tt class="py-lineno">200</tt> <a class="py-toggle" href="#" id="BC.insert_direct_method-toggle" onclick="return toggle('BC.insert_direct_method');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="androguard.BC-class.html#insert_direct_method">insert_direct_method</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">,</tt> <tt class="py-param">method</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> </tt>
</div><div id="BC.insert_direct_method-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="BC.insert_direct_method-expanded"><a name="L201"></a><tt class="py-lineno">201</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__bc</tt><tt class="py-op">.</tt><tt id="link-105" class="py-name"><a title="androguard.BC.insert_direct_method
jvm.JVMFormat.insert_direct_method" class="py-name" href="#" onclick="return doclink('link-105', 'insert_direct_method', 'link-33');">insert_direct_method</a></tt><tt class="py-op">(</tt><tt class="py-name">name</tt><tt class="py-op">,</tt> <tt class="py-name">method</tt><tt class="py-op">)</tt> </tt>
</div><a name="L202"></a><tt class="py-lineno">202</tt>  <tt class="py-line"> </tt>
<a name="BC.insert_craft_method"></a><div id="BC.insert_craft_method-def"><a name="L203"></a><tt class="py-lineno">203</tt> <a class="py-toggle" href="#" id="BC.insert_craft_method-toggle" onclick="return toggle('BC.insert_craft_method');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="androguard.BC-class.html#insert_craft_method">insert_craft_method</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">,</tt> <tt class="py-param">proto</tt><tt class="py-op">,</tt> <tt class="py-param">codes</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> </tt>
</div><div id="BC.insert_craft_method-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="BC.insert_craft_method-expanded"><a name="L204"></a><tt class="py-lineno">204</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__bc</tt><tt class="py-op">.</tt><tt id="link-106" class="py-name" targets="Method androguard.BC.insert_craft_method()=androguard.BC-class.html#insert_craft_method,Method jvm.JVMFormat.insert_craft_method()=jvm.JVMFormat-class.html#insert_craft_method"><a title="androguard.BC.insert_craft_method
jvm.JVMFormat.insert_craft_method" class="py-name" href="#" onclick="return doclink('link-106', 'insert_craft_method', 'link-106');">insert_craft_method</a></tt><tt class="py-op">(</tt> <tt class="py-name">name</tt><tt class="py-op">,</tt> <tt class="py-name">proto</tt><tt class="py-op">,</tt> <tt class="py-name">codes</tt><tt class="py-op">)</tt> </tt>
</div><a name="L205"></a><tt class="py-lineno">205</tt>  <tt class="py-line"> </tt>
<a name="BC.show"></a><div id="BC.show-def"><a name="L206"></a><tt class="py-lineno">206</tt> <a class="py-toggle" href="#" id="BC.show-toggle" onclick="return toggle('BC.show');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="androguard.BC-class.html#show">show</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> </tt>
</div><div id="BC.show-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="BC.show-expanded"><a name="L207"></a><tt class="py-lineno">207</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__bc</tt><tt class="py-op">.</tt><tt id="link-107" class="py-name"><a title="analysis.BreakBlock.show
analysis.JVMBasicBlock.show
analysis.MethodAnalysis.show
analysis.Stack.show
analysis.StackTraces.show
analysis.TaintedPackage.show
androguard.Androguard.show
androguard.BC.show
apk.APK.show
bytecode.MethodBC.show
diff.DiffBB.show
diff.Method.show
dvm.AnnotationElement.show
dvm.AnnotationItem.show
dvm.AnnotationOffItem.show
dvm.AnnotationSetItem.show
dvm.AnnotationSetRefItem.show
dvm.AnnotationSetRefList.show
dvm.AnnotationsDirectoryItem.show
dvm.ClassDataItem.show
dvm.ClassDefItem.show
dvm.ClassItem.show
dvm.CodeItem.show
dvm.DBC.show
dvm.DBCSpe.show
dvm.DBGBytecode.show
dvm.DCode.show
dvm.DalvikCode.show
dvm.DalvikVMFormat.show
dvm.DebugInfoItem.show
dvm.DebugInfoItem2.show
dvm.EncodedAnnotation.show
dvm.EncodedArray.show
dvm.EncodedArrayItem.show
dvm.EncodedCatchHandler.show
dvm.EncodedCatchHandlerList.show
dvm.EncodedField.show
dvm.EncodedMethod.show
dvm.EncodedTypeAddrPair.show
dvm.EncodedValue.show
dvm.FieldAnnotation.show
dvm.FieldItem.show
dvm.FillArrayData.show
dvm.HeaderItem.show
dvm.IdItem.show
dvm.MapItem.show
dvm.MapList.show
dvm.MethodAnnotation.show
dvm.MethodIdItem.show
dvm.MethodItem.show
dvm.PackedSwitch.show
dvm.ParameterAnnotation.show
dvm.ProtoIdItem.show
dvm.ProtoItem.show
dvm.SparseSwitch.show
dvm.StringDataItem.show
dvm.StringIdItem.show
dvm.TypeIdItem.show
dvm.TypeItem.show
dvm.TypeLItem.show
dvm.TypeList.show
jvm.Annotation.show
jvm.AnnotationDefaultAttribute.show
jvm.AppendFrame.show
jvm.ArrayValue.show
jvm.AttributeInfo.show
jvm.ChopFrame.show
jvm.CodeAttribute.show
jvm.ConstantValueAttribute.show
jvm.CpInfo.show
jvm.DeprecatedAttribute.show
jvm.ElementValue.show
jvm.ElementValuePair.show
jvm.EmptyConstant.show
jvm.EnclosingMethodAttribute.show
jvm.ExceptionsAttribute.show
jvm.FieldInfo.show
jvm.FullFrame.show
jvm.InnerClassesAttribute.show
jvm.InnerClassesDesc.show
jvm.JAR.show
jvm.JBC.show
jvm.JVMFormat.show
jvm.JavaCode.show
jvm.LineNumberTableAttribute.show
jvm.LocalVariableTableAttribute.show
jvm.LocalVariableTypeTableAttribute.show
jvm.MethodInfo.show
jvm.ParameterAnnotation.show
jvm.RuntimeInvisibleAnnotationsAttribute.show
jvm.RuntimeInvisibleParameterAnnotationsAttribute.show
jvm.RuntimeVisibleAnnotationsAttribute.show
jvm.RuntimeVisibleParameterAnnotationsAttribute.show
jvm.SameFrame.show
jvm.SameFrameExtended.show
jvm.SameLocals1StackItemFrame.show
jvm.SameLocals1StackItemFrameExtended.show
jvm.SignatureAttribute.show
jvm.SourceDebugExtensionAttribute.show
jvm.SourceFileAttribute.show
jvm.StackMapTableAttribute.show
jvm.SyntheticAttribute.show
jvm.VerificationTypeInfo.show" class="py-name" href="#" onclick="return doclink('link-107', 'show', 'link-35');">show</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
</div><a name="L208"></a><tt class="py-lineno">208</tt>  <tt class="py-line"> </tt>
<a name="BC.pretty_show"></a><div id="BC.pretty_show-def"><a name="L209"></a><tt class="py-lineno">209</tt> <a class="py-toggle" href="#" id="BC.pretty_show-toggle" onclick="return toggle('BC.pretty_show');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="androguard.BC-class.html#pretty_show">pretty_show</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> </tt>
</div><div id="BC.pretty_show-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="BC.pretty_show-expanded"><a name="L210"></a><tt class="py-lineno">210</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__bc</tt><tt class="py-op">.</tt><tt id="link-108" class="py-name" targets="Method androguard.Androguard.pretty_show()=androguard.Androguard-class.html#pretty_show,Method androguard.BC.pretty_show()=androguard.BC-class.html#pretty_show,Method dvm.ClassDataItem.pretty_show()=dvm.ClassDataItem-class.html#pretty_show,Method dvm.DCode.pretty_show()=dvm.DCode-class.html#pretty_show,Method dvm.DalvikCode.pretty_show()=dvm.DalvikCode-class.html#pretty_show,Method dvm.DalvikVMFormat.pretty_show()=dvm.DalvikVMFormat-class.html#pretty_show,Method dvm.EncodedMethod.pretty_show()=dvm.EncodedMethod-class.html#pretty_show,Method dvm.MapItem.pretty_show()=dvm.MapItem-class.html#pretty_show,Method dvm.MapList.pretty_show()=dvm.MapList-class.html#pretty_show,Method jvm.AttributeInfo.pretty_show()=jvm.AttributeInfo-class.html#pretty_show,Method jvm.CodeAttribute.pretty_show()=jvm.CodeAttribute-class.html#pretty_show,Method jvm.JVMFormat.pretty_show()=jvm.JVMFormat-class.html#pretty_show,Method jvm.JavaCode.pretty_show()=jvm.JavaCode-class.html#pretty_show,Method jvm.MethodInfo.pretty_show()=jvm.MethodInfo-class.html#pretty_show"><a title="androguard.Androguard.pretty_show
androguard.BC.pretty_show
dvm.ClassDataItem.pretty_show
dvm.DCode.pretty_show
dvm.DalvikCode.pretty_show
dvm.DalvikVMFormat.pretty_show
dvm.EncodedMethod.pretty_show
dvm.MapItem.pretty_show
dvm.MapList.pretty_show
jvm.AttributeInfo.pretty_show
jvm.CodeAttribute.pretty_show
jvm.JVMFormat.pretty_show
jvm.JavaCode.pretty_show
jvm.MethodInfo.pretty_show" class="py-name" href="#" onclick="return doclink('link-108', 'pretty_show', 'link-108');">pretty_show</a></tt><tt class="py-op">(</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__a</tt> <tt class="py-op">)</tt> </tt>
</div><a name="L211"></a><tt class="py-lineno">211</tt>  <tt class="py-line"> </tt>
<a name="BC.save"></a><div id="BC.save-def"><a name="L212"></a><tt class="py-lineno">212</tt> <a class="py-toggle" href="#" id="BC.save-toggle" onclick="return toggle('BC.save');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="androguard.BC-class.html#save">save</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> </tt>
</div><div id="BC.save-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="BC.save-expanded"><a name="L213"></a><tt class="py-lineno">213</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__bc</tt><tt class="py-op">.</tt><tt id="link-109" class="py-name" targets="Method analysis.StackTraces.save()=analysis.StackTraces-class.html#save,Method androguard.Androguard.save()=androguard.Androguard-class.html#save,Method androguard.AndroguardS.save()=androguard.AndroguardS-class.html#save,Method androguard.BC.save()=androguard.BC-class.html#save,Method bytecode._Bytecode.save()=bytecode._Bytecode-class.html#save,Method dvm.DalvikVMFormat.save()=dvm.DalvikVMFormat-class.html#save,Method jvm.JVMFormat.save()=jvm.JVMFormat-class.html#save"><a title="analysis.StackTraces.save
androguard.Androguard.save
androguard.AndroguardS.save
androguard.BC.save
bytecode._Bytecode.save
dvm.DalvikVMFormat.save
jvm.JVMFormat.save" class="py-name" href="#" onclick="return doclink('link-109', 'save', 'link-109');">save</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
</div><a name="L214"></a><tt class="py-lineno">214</tt>  <tt class="py-line"> </tt>
<a name="BC.__getattr__"></a><div id="BC.__getattr__-def"><a name="L215"></a><tt class="py-lineno">215</tt> <a class="py-toggle" href="#" id="BC.__getattr__-toggle" onclick="return toggle('BC.__getattr__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="androguard.BC-class.html#__getattr__">__getattr__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">value</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> </tt>
</div><div id="BC.__getattr__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="BC.__getattr__-expanded"><a name="L216"></a><tt class="py-lineno">216</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">getattr</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__bc</tt><tt class="py-op">,</tt> <tt class="py-name">value</tt><tt class="py-op">)</tt> </tt>
</div></div><a name="L217"></a><tt class="py-lineno">217</tt>  <tt class="py-line"> </tt>
<a name="L218"></a><tt class="py-lineno">218</tt>  <tt class="py-line"><tt id="link-110" class="py-name" targets="Variable androguard.PROTECT_VM_AUTO=androguard-module.html#PROTECT_VM_AUTO"><a title="androguard.PROTECT_VM_AUTO" class="py-name" href="#" onclick="return doclink('link-110', 'PROTECT_VM_AUTO', 'link-110');">PROTECT_VM_AUTO</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"protect_vm_auto"</tt> </tt>
<a name="L219"></a><tt class="py-lineno">219</tt>  <tt class="py-line"><tt id="link-111" class="py-name" targets="Variable androguard.PROTECT_VM_INTEGER=androguard-module.html#PROTECT_VM_INTEGER"><a title="androguard.PROTECT_VM_INTEGER" class="py-name" href="#" onclick="return doclink('link-111', 'PROTECT_VM_INTEGER', 'link-111');">PROTECT_VM_INTEGER</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"protect_vm_integer"</tt> </tt>
<a name="L220"></a><tt class="py-lineno">220</tt>  <tt class="py-line"><tt id="link-112" class="py-name" targets="Variable androguard.PROTECT_VM_INTEGER_TYPE=androguard-module.html#PROTECT_VM_INTEGER_TYPE"><a title="androguard.PROTECT_VM_INTEGER_TYPE" class="py-name" href="#" onclick="return doclink('link-112', 'PROTECT_VM_INTEGER_TYPE', 'link-112');">PROTECT_VM_INTEGER_TYPE</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"protect_vm_integer_type"</tt> </tt>
<a name="L221"></a><tt class="py-lineno">221</tt>  <tt class="py-line"> </tt>
<a name="Androguard"></a><div id="Androguard-def"><a name="L222"></a><tt class="py-lineno">222</tt> <a class="py-toggle" href="#" id="Androguard-toggle" onclick="return toggle('Androguard');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="androguard.Androguard-class.html">Androguard</a> <tt class="py-op">:</tt> </tt>
</div><div id="Androguard-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="Androguard-expanded"><a name="L223"></a><tt class="py-lineno">223</tt>  <tt class="py-line">    <tt class="py-docstring">"""Androguard is the main object to abstract and manage differents formats</tt> </tt>
<a name="L224"></a><tt class="py-lineno">224</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
<a name="L225"></a><tt class="py-lineno">225</tt>  <tt class="py-line"><tt class="py-docstring">       @param files : a list of filenames (filename must be terminated by .class or .dex)</tt> </tt>
<a name="L226"></a><tt class="py-lineno">226</tt>  <tt class="py-line"><tt class="py-docstring">       @param raw : specify if the filename is in fact a raw buffer (default : False) #FIXME</tt> </tt>
<a name="L227"></a><tt class="py-lineno">227</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
<a name="Androguard.__init__"></a><div id="Androguard.__init__-def"><a name="L228"></a><tt class="py-lineno">228</tt> <a class="py-toggle" href="#" id="Androguard.__init__-toggle" onclick="return toggle('Androguard.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="androguard.Androguard-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">files</tt><tt class="py-op">,</tt> <tt class="py-param">raw</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> </tt>
</div><div id="Androguard.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Androguard.__init__-expanded"><a name="L229"></a><tt class="py-lineno">229</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__files</tt> <tt class="py-op">=</tt> <tt class="py-name">files</tt> </tt>
<a name="L230"></a><tt class="py-lineno">230</tt>  <tt class="py-line"> </tt>
<a name="L231"></a><tt class="py-lineno">231</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__orig_raw</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
<a name="L232"></a><tt class="py-lineno">232</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt id="link-113" class="py-name"><a title="analysis.i
jvm.i" class="py-name" href="#" onclick="return doclink('link-113', 'i', 'link-42');">i</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__files</tt> <tt class="py-op">:</tt> </tt>
<a name="L233"></a><tt class="py-lineno">233</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__orig_raw</tt><tt class="py-op">[</tt> <tt id="link-114" class="py-name"><a title="analysis.i
jvm.i" class="py-name" href="#" onclick="return doclink('link-114', 'i', 'link-42');">i</a></tt> <tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt id="link-115" class="py-name"><a title="analysis.i
jvm.i" class="py-name" href="#" onclick="return doclink('link-115', 'i', 'link-42');">i</a></tt><tt class="py-op">,</tt> <tt class="py-string">"rb"</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-116" class="py-name"><a title="apk.ChilkatZip.read
bytecode.BuffHandle.read
bytecode._Bytecode.read" class="py-name" href="#" onclick="return doclink('link-116', 'read', 'link-39');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L234"></a><tt class="py-lineno">234</tt>  <tt class="py-line"> </tt>
<a name="L235"></a><tt class="py-lineno">235</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__bc</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
<a name="L236"></a><tt class="py-lineno">236</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-117" class="py-name" targets="Method androguard.Androguard._analyze()=androguard.Androguard-class.html#_analyze"><a title="androguard.Androguard._analyze" class="py-name" href="#" onclick="return doclink('link-117', '_analyze', 'link-117');">_analyze</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
</div><a name="L237"></a><tt class="py-lineno">237</tt>  <tt class="py-line"> </tt>
<a name="Androguard._iterFlatten"></a><div id="Androguard._iterFlatten-def"><a name="L238"></a><tt class="py-lineno">238</tt> <a class="py-toggle" href="#" id="Androguard._iterFlatten-toggle" onclick="return toggle('Androguard._iterFlatten');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="androguard.Androguard-class.html#_iterFlatten">_iterFlatten</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">root</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="Androguard._iterFlatten-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Androguard._iterFlatten-expanded"><a name="L239"></a><tt class="py-lineno">239</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">root</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">,</tt> <tt class="py-name">tuple</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L240"></a><tt class="py-lineno">240</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt class="py-name">element</tt> <tt class="py-keyword">in</tt> <tt class="py-name">root</tt> <tt class="py-op">:</tt> </tt>
<a name="L241"></a><tt class="py-lineno">241</tt>  <tt class="py-line">                <tt class="py-keyword">for</tt> <tt class="py-name">e</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-118" class="py-name" targets="Method androguard.Androguard._iterFlatten()=androguard.Androguard-class.html#_iterFlatten,Method dvm.DalvikVMFormat._iterFlatten()=dvm.DalvikVMFormat-class.html#_iterFlatten"><a title="androguard.Androguard._iterFlatten
dvm.DalvikVMFormat._iterFlatten" class="py-name" href="#" onclick="return doclink('link-118', '_iterFlatten', 'link-118');">_iterFlatten</a></tt><tt class="py-op">(</tt><tt class="py-name">element</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> </tt>
<a name="L242"></a><tt class="py-lineno">242</tt>  <tt class="py-line">                    <tt class="py-keyword">yield</tt> <tt class="py-name">e</tt> </tt>
<a name="L243"></a><tt class="py-lineno">243</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
<a name="L244"></a><tt class="py-lineno">244</tt>  <tt class="py-line">            <tt class="py-keyword">yield</tt> <tt class="py-name">root</tt> </tt>
</div><a name="L245"></a><tt class="py-lineno">245</tt>  <tt class="py-line"> </tt>
<a name="Androguard._analyze"></a><div id="Androguard._analyze-def"><a name="L246"></a><tt class="py-lineno">246</tt> <a class="py-toggle" href="#" id="Androguard._analyze-toggle" onclick="return toggle('Androguard._analyze');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="androguard.Androguard-class.html#_analyze">_analyze</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> </tt>
</div><div id="Androguard._analyze-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Androguard._analyze-expanded"><a name="L247"></a><tt class="py-lineno">247</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt id="link-119" class="py-name"><a title="analysis.i
jvm.i" class="py-name" href="#" onclick="return doclink('link-119', 'i', 'link-42');">i</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__files</tt> <tt class="py-op">:</tt> </tt>
<a name="L248"></a><tt class="py-lineno">248</tt>  <tt class="py-line">            <tt class="py-comment">#print "processing ", i</tt> </tt>
<a name="L249"></a><tt class="py-lineno">249</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-string">".class"</tt> <tt class="py-keyword">in</tt> <tt id="link-120" class="py-name"><a title="analysis.i
jvm.i" class="py-name" href="#" onclick="return doclink('link-120', 'i', 'link-42');">i</a></tt> <tt class="py-op">:</tt> </tt>
<a name="L250"></a><tt class="py-lineno">250</tt>  <tt class="py-line">                <tt class="py-name">bc</tt> <tt class="py-op">=</tt> <tt id="link-121" class="py-name"><a title="jvm" class="py-name" href="#" onclick="return doclink('link-121', 'jvm', 'link-10');">jvm</a></tt><tt class="py-op">.</tt><tt id="link-122" class="py-name" targets="Class jvm.JVMFormat=jvm.JVMFormat-class.html"><a title="jvm.JVMFormat" class="py-name" href="#" onclick="return doclink('link-122', 'JVMFormat', 'link-122');">JVMFormat</a></tt><tt class="py-op">(</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__orig_raw</tt><tt class="py-op">[</tt> <tt id="link-123" class="py-name"><a title="analysis.i
jvm.i" class="py-name" href="#" onclick="return doclink('link-123', 'i', 'link-42');">i</a></tt> <tt class="py-op">]</tt> <tt class="py-op">)</tt> </tt>
<a name="L251"></a><tt class="py-lineno">251</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-string">".jar"</tt> <tt class="py-keyword">in</tt> <tt id="link-124" class="py-name"><a title="analysis.i
jvm.i" class="py-name" href="#" onclick="return doclink('link-124', 'i', 'link-42');">i</a></tt> <tt class="py-op">:</tt> </tt>
<a name="L252"></a><tt class="py-lineno">252</tt>  <tt class="py-line">                <tt class="py-name">x</tt> <tt class="py-op">=</tt> <tt id="link-125" class="py-name"><a title="jvm" class="py-name" href="#" onclick="return doclink('link-125', 'jvm', 'link-10');">jvm</a></tt><tt class="py-op">.</tt><tt id="link-126" class="py-name" targets="Class jvm.JAR=jvm.JAR-class.html"><a title="jvm.JAR" class="py-name" href="#" onclick="return doclink('link-126', 'JAR', 'link-126');">JAR</a></tt><tt class="py-op">(</tt> <tt id="link-127" class="py-name"><a title="analysis.i
jvm.i" class="py-name" href="#" onclick="return doclink('link-127', 'i', 'link-42');">i</a></tt> <tt class="py-op">)</tt> </tt>
<a name="L253"></a><tt class="py-lineno">253</tt>  <tt class="py-line">                <tt class="py-name">bc</tt> <tt class="py-op">=</tt> <tt class="py-name">x</tt><tt class="py-op">.</tt><tt id="link-128" class="py-name" targets="Method dvm.DalvikVMFormat.get_classes()=dvm.DalvikVMFormat-class.html#get_classes,Method jvm.InnerClassesAttribute.get_classes()=jvm.InnerClassesAttribute-class.html#get_classes,Method jvm.JAR.get_classes()=jvm.JAR-class.html#get_classes,Method jvm.JVMFormat.get_classes()=jvm.JVMFormat-class.html#get_classes"><a title="dvm.DalvikVMFormat.get_classes
jvm.InnerClassesAttribute.get_classes
jvm.JAR.get_classes
jvm.JVMFormat.get_classes" class="py-name" href="#" onclick="return doclink('link-128', 'get_classes', 'link-128');">get_classes</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L254"></a><tt class="py-lineno">254</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-string">".dex"</tt> <tt class="py-keyword">in</tt> <tt id="link-129" class="py-name"><a title="analysis.i
jvm.i" class="py-name" href="#" onclick="return doclink('link-129', 'i', 'link-42');">i</a></tt> <tt class="py-op">:</tt> </tt>
<a name="L255"></a><tt class="py-lineno">255</tt>  <tt class="py-line">                <tt class="py-name">bc</tt> <tt class="py-op">=</tt> <tt id="link-130" class="py-name"><a title="dvm" class="py-name" href="#" onclick="return doclink('link-130', 'dvm', 'link-11');">dvm</a></tt><tt class="py-op">.</tt><tt id="link-131" class="py-name" targets="Class dvm.DalvikVMFormat=dvm.DalvikVMFormat-class.html"><a title="dvm.DalvikVMFormat" class="py-name" href="#" onclick="return doclink('link-131', 'DalvikVMFormat', 'link-131');">DalvikVMFormat</a></tt><tt class="py-op">(</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__orig_raw</tt><tt class="py-op">[</tt> <tt id="link-132" class="py-name"><a title="analysis.i
jvm.i" class="py-name" href="#" onclick="return doclink('link-132', 'i', 'link-42');">i</a></tt> <tt class="py-op">]</tt> <tt class="py-op">)</tt> </tt>
<a name="L256"></a><tt class="py-lineno">256</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-string">".apk"</tt> <tt class="py-keyword">in</tt> <tt id="link-133" class="py-name"><a title="analysis.i
jvm.i" class="py-name" href="#" onclick="return doclink('link-133', 'i', 'link-42');">i</a></tt> <tt class="py-op">:</tt> </tt>
<a name="L257"></a><tt class="py-lineno">257</tt>  <tt class="py-line">                <tt class="py-name">x</tt> <tt class="py-op">=</tt> <tt id="link-134" class="py-name"><a title="apk" class="py-name" href="#" onclick="return doclink('link-134', 'apk', 'link-12');">apk</a></tt><tt class="py-op">.</tt><tt id="link-135" class="py-name" targets="Class apk.APK=apk.APK-class.html"><a title="apk.APK" class="py-name" href="#" onclick="return doclink('link-135', 'APK', 'link-135');">APK</a></tt><tt class="py-op">(</tt> <tt id="link-136" class="py-name"><a title="analysis.i
jvm.i" class="py-name" href="#" onclick="return doclink('link-136', 'i', 'link-42');">i</a></tt> <tt class="py-op">)</tt> </tt>
<a name="L258"></a><tt class="py-lineno">258</tt>  <tt class="py-line">                <tt class="py-name">bc</tt> <tt class="py-op">=</tt> <tt id="link-137" class="py-name"><a title="dvm" class="py-name" href="#" onclick="return doclink('link-137', 'dvm', 'link-11');">dvm</a></tt><tt class="py-op">.</tt><tt id="link-138" class="py-name"><a title="dvm.DalvikVMFormat" class="py-name" href="#" onclick="return doclink('link-138', 'DalvikVMFormat', 'link-131');">DalvikVMFormat</a></tt><tt class="py-op">(</tt> <tt class="py-name">x</tt><tt class="py-op">.</tt><tt id="link-139" class="py-name" targets="Method apk.APK.get_dex()=apk.APK-class.html#get_dex"><a title="apk.APK.get_dex" class="py-name" href="#" onclick="return doclink('link-139', 'get_dex', 'link-139');">get_dex</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt> </tt>
<a name="L259"></a><tt class="py-lineno">259</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt> <tt class="py-op">:</tt> </tt>
<a name="L260"></a><tt class="py-lineno">260</tt>  <tt class="py-line">                <tt class="py-keyword">raise</tt><tt class="py-op">(</tt> <tt class="py-string">"Unknown bytecode"</tt> <tt class="py-op">)</tt> </tt>
<a name="L261"></a><tt class="py-lineno">261</tt>  <tt class="py-line"> </tt>
<a name="L262"></a><tt class="py-lineno">262</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">bc</tt><tt class="py-op">,</tt> <tt class="py-name">list</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> </tt>
<a name="L263"></a><tt class="py-lineno">263</tt>  <tt class="py-line">                <tt class="py-keyword">for</tt> <tt class="py-name">j</tt> <tt class="py-keyword">in</tt> <tt class="py-name">bc</tt> <tt class="py-op">:</tt> </tt>
<a name="L264"></a><tt class="py-lineno">264</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__bc</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt> <tt class="py-op">(</tt><tt class="py-name">j</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt id="link-140" class="py-name" targets="Class androguard.BC=androguard.BC-class.html"><a title="androguard.BC" class="py-name" href="#" onclick="return doclink('link-140', 'BC', 'link-140');">BC</a></tt><tt class="py-op">(</tt> <tt id="link-141" class="py-name"><a title="jvm" class="py-name" href="#" onclick="return doclink('link-141', 'jvm', 'link-10');">jvm</a></tt><tt class="py-op">.</tt><tt id="link-142" class="py-name"><a title="jvm.JVMFormat" class="py-name" href="#" onclick="return doclink('link-142', 'JVMFormat', 'link-122');">JVMFormat</a></tt><tt class="py-op">(</tt><tt class="py-name">j</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt> <tt class="py-op">)</tt> <tt class="py-op">)</tt> </tt>
<a name="L265"></a><tt class="py-lineno">265</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt> <tt class="py-op">:</tt> </tt>
<a name="L266"></a><tt class="py-lineno">266</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__bc</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt> <tt class="py-op">(</tt><tt id="link-143" class="py-name"><a title="analysis.i
jvm.i" class="py-name" href="#" onclick="return doclink('link-143', 'i', 'link-42');">i</a></tt><tt class="py-op">,</tt> <tt id="link-144" class="py-name"><a title="androguard.BC" class="py-name" href="#" onclick="return doclink('link-144', 'BC', 'link-140');">BC</a></tt><tt class="py-op">(</tt> <tt class="py-name">bc</tt> <tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt> </tt>
</div><a name="L267"></a><tt class="py-lineno">267</tt>  <tt class="py-line"> </tt>
<a name="Androguard.ianalyze"></a><div id="Androguard.ianalyze-def"><a name="L268"></a><tt class="py-lineno">268</tt> <a class="py-toggle" href="#" id="Androguard.ianalyze-toggle" onclick="return toggle('Androguard.ianalyze');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="androguard.Androguard-class.html#ianalyze">ianalyze</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> </tt>
</div><div id="Androguard.ianalyze-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Androguard.ianalyze-expanded"><a name="L269"></a><tt class="py-lineno">269</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt id="link-145" class="py-name"><a title="analysis.i
jvm.i" class="py-name" href="#" onclick="return doclink('link-145', 'i', 'link-42');">i</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-146" class="py-name"><a title="androguard.Androguard.get_bc
dvm.DalvikCode.get_bc
jvm.CodeAttribute.get_bc" class="py-name" href="#" onclick="return doclink('link-146', 'get_bc', 'link-26');">get_bc</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> </tt>
<a name="L270"></a><tt class="py-lineno">270</tt>  <tt class="py-line">            <tt id="link-147" class="py-name"><a title="analysis.i
jvm.i" class="py-name" href="#" onclick="return doclink('link-147', 'i', 'link-42');">i</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-148" class="py-name" targets="Method analysis.DVMBasicBlock.analyze()=analysis.DVMBasicBlock-class.html#analyze,Method analysis.DVMBreakBlock.analyze()=analysis.DVMBreakBlock-class.html#analyze,Method analysis.JVMBasicBlock.analyze()=analysis.JVMBasicBlock-class.html#analyze,Method analysis.JVMBreakBlock.analyze()=analysis.JVMBreakBlock-class.html#analyze,Method androguard.BC.analyze()=androguard.BC-class.html#analyze"><a title="analysis.DVMBasicBlock.analyze
analysis.DVMBreakBlock.analyze
analysis.JVMBasicBlock.analyze
analysis.JVMBreakBlock.analyze
androguard.BC.analyze" class="py-name" href="#" onclick="return doclink('link-148', 'analyze', 'link-148');">analyze</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
</div><a name="L271"></a><tt class="py-lineno">271</tt>  <tt class="py-line"> </tt>
<a name="Androguard.get_class"></a><div id="Androguard.get_class-def"><a name="L272"></a><tt class="py-lineno">272</tt> <a class="py-toggle" href="#" id="Androguard.get_class-toggle" onclick="return toggle('Androguard.get_class');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="androguard.Androguard-class.html#get_class">get_class</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">class_name</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> </tt>
</div><div id="Androguard.get_class-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Androguard.get_class-expanded"><a name="L273"></a><tt class="py-lineno">273</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">_</tt><tt class="py-op">,</tt> <tt class="py-name">bc</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__bc</tt> <tt class="py-op">:</tt> </tt>
<a name="L274"></a><tt class="py-lineno">274</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">bc</tt><tt class="py-op">.</tt><tt id="link-149" class="py-name" targets="Method androguard.Androguard.get_class()=androguard.Androguard-class.html#get_class,Method dvm.FieldItem.get_class()=dvm.FieldItem-class.html#get_class,Method dvm.MethodItem.get_class()=dvm.MethodItem-class.html#get_class,Method jvm.ClassManager.get_class()=jvm.ClassManager-class.html#get_class,Method jvm.JVMFormat.get_class()=jvm.JVMFormat-class.html#get_class"><a title="androguard.Androguard.get_class
dvm.FieldItem.get_class
dvm.MethodItem.get_class
jvm.ClassManager.get_class
jvm.JVMFormat.get_class" class="py-name" href="#" onclick="return doclink('link-149', 'get_class', 'link-149');">get_class</a></tt><tt class="py-op">(</tt><tt class="py-name">class_name</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-name">True</tt> <tt class="py-op">:</tt> </tt>
<a name="L275"></a><tt class="py-lineno">275</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-name">bc</tt> </tt>
<a name="L276"></a><tt class="py-lineno">276</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
</div><a name="L277"></a><tt class="py-lineno">277</tt>  <tt class="py-line"> </tt>
<a name="Androguard.get_raw"></a><div id="Androguard.get_raw-def"><a name="L278"></a><tt class="py-lineno">278</tt> <a class="py-toggle" href="#" id="Androguard.get_raw-toggle" onclick="return toggle('Androguard.get_raw');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="androguard.Androguard-class.html#get_raw">get_raw</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> </tt>
</div><div id="Androguard.get_raw-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Androguard.get_raw-expanded"><a name="L279"></a><tt class="py-lineno">279</tt>  <tt class="py-line">        <tt class="py-docstring">"""Return raw format of all file"""</tt> </tt>
<a name="L280"></a><tt class="py-lineno">280</tt>  <tt class="py-line">        <tt class="py-name">l</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
<a name="L281"></a><tt class="py-lineno">281</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">_</tt><tt class="py-op">,</tt> <tt class="py-name">bc</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__bc</tt> <tt class="py-op">:</tt> </tt>
<a name="L282"></a><tt class="py-lineno">282</tt>  <tt class="py-line">            <tt class="py-name">l</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt> <tt class="py-name">bc</tt><tt class="py-op">.</tt><tt id="link-150" class="py-name" targets="Method dvm.DalvikVMFormat._get_raw()=dvm.DalvikVMFormat-class.html#_get_raw,Method jvm.JVMFormat._get_raw()=jvm.JVMFormat-class.html#_get_raw"><a title="dvm.DalvikVMFormat._get_raw
jvm.JVMFormat._get_raw" class="py-name" href="#" onclick="return doclink('link-150', '_get_raw', 'link-150');">_get_raw</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt> </tt>
<a name="L283"></a><tt class="py-lineno">283</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">l</tt> </tt>
</div><a name="L284"></a><tt class="py-lineno">284</tt>  <tt class="py-line"> </tt>
<a name="Androguard.get_orig_raw"></a><div id="Androguard.get_orig_raw-def"><a name="L285"></a><tt class="py-lineno">285</tt> <a class="py-toggle" href="#" id="Androguard.get_orig_raw-toggle" onclick="return toggle('Androguard.get_orig_raw');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="androguard.Androguard-class.html#get_orig_raw">get_orig_raw</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> </tt>
</div><div id="Androguard.get_orig_raw-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Androguard.get_orig_raw-expanded"><a name="L286"></a><tt class="py-lineno">286</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__orig_raw</tt> </tt>
</div><a name="L287"></a><tt class="py-lineno">287</tt>  <tt class="py-line"> </tt>
<a name="Androguard.get_method_descriptor"></a><div id="Androguard.get_method_descriptor-def"><a name="L288"></a><tt class="py-lineno">288</tt> <a class="py-toggle" href="#" id="Androguard.get_method_descriptor-toggle" onclick="return toggle('Androguard.get_method_descriptor');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="androguard.Androguard-class.html#get_method_descriptor">get_method_descriptor</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">class_name</tt><tt class="py-op">,</tt> <tt class="py-param">method_name</tt><tt class="py-op">,</tt> <tt class="py-param">descriptor</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> </tt>
</div><div id="Androguard.get_method_descriptor-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Androguard.get_method_descriptor-expanded"><a name="L289"></a><tt class="py-lineno">289</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
<a name="L290"></a><tt class="py-lineno">290</tt>  <tt class="py-line"><tt class="py-docstring">           Return the specific method</tt> </tt>
<a name="L291"></a><tt class="py-lineno">291</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
<a name="L292"></a><tt class="py-lineno">292</tt>  <tt class="py-line"><tt class="py-docstring">           @param class_name : the class name of the method</tt> </tt>
<a name="L293"></a><tt class="py-lineno">293</tt>  <tt class="py-line"><tt class="py-docstring">           @param method_name : the name of the method</tt> </tt>
<a name="L294"></a><tt class="py-lineno">294</tt>  <tt class="py-line"><tt class="py-docstring">           @param descriptor : the descriptor of the method</tt> </tt>
<a name="L295"></a><tt class="py-lineno">295</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
<a name="L296"></a><tt class="py-lineno">296</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">file_name</tt><tt class="py-op">,</tt> <tt class="py-name">bc</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__bc</tt> <tt class="py-op">:</tt> </tt>
<a name="L297"></a><tt class="py-lineno">297</tt>  <tt class="py-line">            <tt class="py-name">x</tt> <tt class="py-op">=</tt> <tt class="py-name">bc</tt><tt class="py-op">.</tt><tt id="link-151" class="py-name"><a title="androguard.Androguard.get_method_descriptor
dvm.DalvikVMFormat.get_method_descriptor
jvm.JVMFormat.get_method_descriptor" class="py-name" href="#" onclick="return doclink('link-151', 'get_method_descriptor', 'link-24');">get_method_descriptor</a></tt><tt class="py-op">(</tt> <tt class="py-name">class_name</tt><tt class="py-op">,</tt> <tt class="py-name">method_name</tt><tt class="py-op">,</tt> <tt class="py-name">descriptor</tt> <tt class="py-op">)</tt> </tt>
<a name="L298"></a><tt class="py-lineno">298</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">x</tt> <tt class="py-op">!=</tt> <tt class="py-name">None</tt> <tt class="py-op">:</tt> </tt>
<a name="L299"></a><tt class="py-lineno">299</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">bc</tt> </tt>
<a name="L300"></a><tt class="py-lineno">300</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt> </tt>
</div><a name="L301"></a><tt class="py-lineno">301</tt>  <tt class="py-line"> </tt>
<a name="Androguard.get_field_descriptor"></a><div id="Androguard.get_field_descriptor-def"><a name="L302"></a><tt class="py-lineno">302</tt> <a class="py-toggle" href="#" id="Androguard.get_field_descriptor-toggle" onclick="return toggle('Androguard.get_field_descriptor');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="androguard.Androguard-class.html#get_field_descriptor">get_field_descriptor</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">class_name</tt><tt class="py-op">,</tt> <tt class="py-param">field_name</tt><tt class="py-op">,</tt> <tt class="py-param">descriptor</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> </tt>
</div><div id="Androguard.get_field_descriptor-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Androguard.get_field_descriptor-expanded"><a name="L303"></a><tt class="py-lineno">303</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
<a name="L304"></a><tt class="py-lineno">304</tt>  <tt class="py-line"><tt class="py-docstring">           Return the specific field</tt> </tt>
<a name="L305"></a><tt class="py-lineno">305</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
<a name="L306"></a><tt class="py-lineno">306</tt>  <tt class="py-line"><tt class="py-docstring">           @param class_name : the class name of the field</tt> </tt>
<a name="L307"></a><tt class="py-lineno">307</tt>  <tt class="py-line"><tt class="py-docstring">           @param field_name : the name of the field</tt> </tt>
<a name="L308"></a><tt class="py-lineno">308</tt>  <tt class="py-line"><tt class="py-docstring">           @param descriptor : the descriptor of the field</tt> </tt>
<a name="L309"></a><tt class="py-lineno">309</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
<a name="L310"></a><tt class="py-lineno">310</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">file_name</tt><tt class="py-op">,</tt> <tt class="py-name">bc</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__bc</tt> <tt class="py-op">:</tt> </tt>
<a name="L311"></a><tt class="py-lineno">311</tt>  <tt class="py-line">            <tt class="py-name">x</tt> <tt class="py-op">=</tt> <tt class="py-name">bc</tt><tt class="py-op">.</tt><tt id="link-152" class="py-name" targets="Method androguard.Androguard.get_field_descriptor()=androguard.Androguard-class.html#get_field_descriptor,Method dvm.DalvikVMFormat.get_field_descriptor()=dvm.DalvikVMFormat-class.html#get_field_descriptor,Method jvm.JVMFormat.get_field_descriptor()=jvm.JVMFormat-class.html#get_field_descriptor"><a title="androguard.Androguard.get_field_descriptor
dvm.DalvikVMFormat.get_field_descriptor
jvm.JVMFormat.get_field_descriptor" class="py-name" href="#" onclick="return doclink('link-152', 'get_field_descriptor', 'link-152');">get_field_descriptor</a></tt><tt class="py-op">(</tt> <tt class="py-name">class_name</tt><tt class="py-op">,</tt> <tt class="py-name">field_name</tt><tt class="py-op">,</tt> <tt class="py-name">descriptor</tt> <tt class="py-op">)</tt> </tt>
<a name="L312"></a><tt class="py-lineno">312</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">x</tt> <tt class="py-op">!=</tt> <tt class="py-name">None</tt> <tt class="py-op">:</tt> </tt>
<a name="L313"></a><tt class="py-lineno">313</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">bc</tt> </tt>
<a name="L314"></a><tt class="py-lineno">314</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt> </tt>
</div><a name="L315"></a><tt class="py-lineno">315</tt>  <tt class="py-line"> </tt>
<a name="Androguard.get"></a><div id="Androguard.get-def"><a name="L316"></a><tt class="py-lineno">316</tt> <a class="py-toggle" href="#" id="Androguard.get-toggle" onclick="return toggle('Androguard.get');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="androguard.Androguard-class.html#get">get</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">,</tt> <tt class="py-param">val</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> </tt>
</div><div id="Androguard.get-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Androguard.get-expanded"><a name="L317"></a><tt class="py-lineno">317</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
<a name="L318"></a><tt class="py-lineno">318</tt>  <tt class="py-line"><tt class="py-docstring">           Return the specific value for all files</tt> </tt>
<a name="L319"></a><tt class="py-lineno">319</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
<a name="L320"></a><tt class="py-lineno">320</tt>  <tt class="py-line"><tt class="py-docstring">           @param name :</tt> </tt>
<a name="L321"></a><tt class="py-lineno">321</tt>  <tt class="py-line"><tt class="py-docstring">           @param val :</tt> </tt>
<a name="L322"></a><tt class="py-lineno">322</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
<a name="L323"></a><tt class="py-lineno">323</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">name</tt> <tt class="py-op">==</tt> <tt class="py-string">"file"</tt> <tt class="py-op">:</tt> </tt>
<a name="L324"></a><tt class="py-lineno">324</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt class="py-name">file_name</tt><tt class="py-op">,</tt> <tt class="py-name">bc</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__bc</tt> <tt class="py-op">:</tt> </tt>
<a name="L325"></a><tt class="py-lineno">325</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">file_name</tt> <tt class="py-op">==</tt> <tt class="py-name">val</tt> <tt class="py-op">:</tt> </tt>
<a name="L326"></a><tt class="py-lineno">326</tt>  <tt class="py-line">                    <tt class="py-keyword">return</tt> <tt class="py-name">bc</tt> </tt>
<a name="L327"></a><tt class="py-lineno">327</tt>  <tt class="py-line"> </tt>
<a name="L328"></a><tt class="py-lineno">328</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
<a name="L329"></a><tt class="py-lineno">329</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt> <tt class="py-op">:</tt> </tt>
<a name="L330"></a><tt class="py-lineno">330</tt>  <tt class="py-line">            <tt class="py-name">l</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
<a name="L331"></a><tt class="py-lineno">331</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt class="py-name">file_name</tt><tt class="py-op">,</tt> <tt class="py-name">bc</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__bc</tt> <tt class="py-op">:</tt> </tt>
<a name="L332"></a><tt class="py-lineno">332</tt>  <tt class="py-line">                <tt class="py-name">l</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt> <tt class="py-name">bc</tt><tt class="py-op">.</tt><tt id="link-153" class="py-name"><a title="analysis.BasicBlocks.get
analysis.Stack.get
analysis.StackTraces.get
analysis.TaintedInteger.get
androguard.Androguard.get
androguard.BC.get
androguard.WM.get
dvm.DCode.get
dvm.IdItem.get
dvm.MethodIdItem.get
dvm.ProtoIdItem.get
dvm.StringDataItem.get
dvm.TypeIdItem.get
jvm.JavaCode.get" class="py-name" href="#" onclick="return doclink('link-153', 'get', 'link-27');">get</a></tt><tt class="py-op">(</tt> <tt class="py-name">name</tt><tt class="py-op">,</tt> <tt class="py-name">val</tt> <tt class="py-op">)</tt> <tt class="py-op">)</tt> </tt>
<a name="L333"></a><tt class="py-lineno">333</tt>  <tt class="py-line"> </tt>
<a name="L334"></a><tt class="py-lineno">334</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-154" class="py-name"><a title="androguard.Androguard._iterFlatten
dvm.DalvikVMFormat._iterFlatten" class="py-name" href="#" onclick="return doclink('link-154', '_iterFlatten', 'link-118');">_iterFlatten</a></tt><tt class="py-op">(</tt><tt class="py-name">l</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt> </tt>
</div><a name="L335"></a><tt class="py-lineno">335</tt>  <tt class="py-line"> </tt>
<a name="Androguard.gets"></a><div id="Androguard.gets-def"><a name="L336"></a><tt class="py-lineno">336</tt> <a class="py-toggle" href="#" id="Androguard.gets-toggle" onclick="return toggle('Androguard.gets');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="androguard.Androguard-class.html#gets">gets</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> </tt>
</div><div id="Androguard.gets-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Androguard.gets-expanded"><a name="L337"></a><tt class="py-lineno">337</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
<a name="L338"></a><tt class="py-lineno">338</tt>  <tt class="py-line"><tt class="py-docstring">           Return the specific value for all files</tt> </tt>
<a name="L339"></a><tt class="py-lineno">339</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
<a name="L340"></a><tt class="py-lineno">340</tt>  <tt class="py-line"><tt class="py-docstring">           @param name :</tt> </tt>
<a name="L341"></a><tt class="py-lineno">341</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
<a name="L342"></a><tt class="py-lineno">342</tt>  <tt class="py-line">        <tt class="py-name">l</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
<a name="L343"></a><tt class="py-lineno">343</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">file_name</tt><tt class="py-op">,</tt> <tt class="py-name">bc</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__bc</tt> <tt class="py-op">:</tt> </tt>
<a name="L344"></a><tt class="py-lineno">344</tt>  <tt class="py-line">            <tt class="py-name">l</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt> <tt class="py-name">bc</tt><tt class="py-op">.</tt><tt id="link-155" class="py-name"><a title="analysis.BasicBlocks.gets
analysis.Stack.gets
analysis.TaintedPackage.gets
androguard.Androguard.gets
androguard.BC.gets
dvm.IdItem.gets" class="py-name" href="#" onclick="return doclink('link-155', 'gets', 'link-49');">gets</a></tt><tt class="py-op">(</tt> <tt class="py-name">name</tt> <tt class="py-op">)</tt> <tt class="py-op">)</tt> </tt>
<a name="L345"></a><tt class="py-lineno">345</tt>  <tt class="py-line"> </tt>
<a name="L346"></a><tt class="py-lineno">346</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-156" class="py-name"><a title="androguard.Androguard._iterFlatten
dvm.DalvikVMFormat._iterFlatten" class="py-name" href="#" onclick="return doclink('link-156', '_iterFlatten', 'link-118');">_iterFlatten</a></tt><tt class="py-op">(</tt><tt class="py-name">l</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt> </tt>
</div><a name="L347"></a><tt class="py-lineno">347</tt>  <tt class="py-line"> </tt>
<a name="Androguard.get_vms"></a><div id="Androguard.get_vms-def"><a name="L348"></a><tt class="py-lineno">348</tt> <a class="py-toggle" href="#" id="Androguard.get_vms-toggle" onclick="return toggle('Androguard.get_vms');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="androguard.Androguard-class.html#get_vms">get_vms</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> </tt>
</div><div id="Androguard.get_vms-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Androguard.get_vms-expanded"><a name="L349"></a><tt class="py-lineno">349</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-op">[</tt> <tt id="link-157" class="py-name"><a title="analysis.i
jvm.i" class="py-name" href="#" onclick="return doclink('link-157', 'i', 'link-42');">i</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-158" class="py-name"><a title="analysis.MethodAnalysis.get_vm
androguard.AndroguardS.get_vm
androguard.BC.get_vm" class="py-name" href="#" onclick="return doclink('link-158', 'get_vm', 'link-37');">get_vm</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt id="link-159" class="py-name"><a title="analysis.i
jvm.i" class="py-name" href="#" onclick="return doclink('link-159', 'i', 'link-42');">i</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__bc</tt> <tt class="py-op">]</tt> </tt>
</div><a name="L350"></a><tt class="py-lineno">350</tt>  <tt class="py-line"> </tt>
<a name="Androguard.get_bc"></a><div id="Androguard.get_bc-def"><a name="L351"></a><tt class="py-lineno">351</tt> <a class="py-toggle" href="#" id="Androguard.get_bc-toggle" onclick="return toggle('Androguard.get_bc');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="androguard.Androguard-class.html#get_bc">get_bc</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> </tt>
</div><div id="Androguard.get_bc-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Androguard.get_bc-expanded"><a name="L352"></a><tt class="py-lineno">352</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__bc</tt> </tt>
</div><a name="L353"></a><tt class="py-lineno">353</tt>  <tt class="py-line"> </tt>
<a name="Androguard.show"></a><div id="Androguard.show-def"><a name="L354"></a><tt class="py-lineno">354</tt> <a class="py-toggle" href="#" id="Androguard.show-toggle" onclick="return toggle('Androguard.show');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="androguard.Androguard-class.html#show">show</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> </tt>
</div><div id="Androguard.show-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Androguard.show-expanded"><a name="L355"></a><tt class="py-lineno">355</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
<a name="L356"></a><tt class="py-lineno">356</tt>  <tt class="py-line"><tt class="py-docstring">           Display all files</tt> </tt>
<a name="L357"></a><tt class="py-lineno">357</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
<a name="L358"></a><tt class="py-lineno">358</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">_</tt><tt class="py-op">,</tt> <tt class="py-name">bc</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__bc</tt> <tt class="py-op">:</tt> </tt>
<a name="L359"></a><tt class="py-lineno">359</tt>  <tt class="py-line">            <tt class="py-name">bc</tt><tt class="py-op">.</tt><tt id="link-160" class="py-name"><a title="analysis.BreakBlock.show
analysis.JVMBasicBlock.show
analysis.MethodAnalysis.show
analysis.Stack.show
analysis.StackTraces.show
analysis.TaintedPackage.show
androguard.Androguard.show
androguard.BC.show
apk.APK.show
bytecode.MethodBC.show
diff.DiffBB.show
diff.Method.show
dvm.AnnotationElement.show
dvm.AnnotationItem.show
dvm.AnnotationOffItem.show
dvm.AnnotationSetItem.show
dvm.AnnotationSetRefItem.show
dvm.AnnotationSetRefList.show
dvm.AnnotationsDirectoryItem.show
dvm.ClassDataItem.show
dvm.ClassDefItem.show
dvm.ClassItem.show
dvm.CodeItem.show
dvm.DBC.show
dvm.DBCSpe.show
dvm.DBGBytecode.show
dvm.DCode.show
dvm.DalvikCode.show
dvm.DalvikVMFormat.show
dvm.DebugInfoItem.show
dvm.DebugInfoItem2.show
dvm.EncodedAnnotation.show
dvm.EncodedArray.show
dvm.EncodedArrayItem.show
dvm.EncodedCatchHandler.show
dvm.EncodedCatchHandlerList.show
dvm.EncodedField.show
dvm.EncodedMethod.show
dvm.EncodedTypeAddrPair.show
dvm.EncodedValue.show
dvm.FieldAnnotation.show
dvm.FieldItem.show
dvm.FillArrayData.show
dvm.HeaderItem.show
dvm.IdItem.show
dvm.MapItem.show
dvm.MapList.show
dvm.MethodAnnotation.show
dvm.MethodIdItem.show
dvm.MethodItem.show
dvm.PackedSwitch.show
dvm.ParameterAnnotation.show
dvm.ProtoIdItem.show
dvm.ProtoItem.show
dvm.SparseSwitch.show
dvm.StringDataItem.show
dvm.StringIdItem.show
dvm.TypeIdItem.show
dvm.TypeItem.show
dvm.TypeLItem.show
dvm.TypeList.show
jvm.Annotation.show
jvm.AnnotationDefaultAttribute.show
jvm.AppendFrame.show
jvm.ArrayValue.show
jvm.AttributeInfo.show
jvm.ChopFrame.show
jvm.CodeAttribute.show
jvm.ConstantValueAttribute.show
jvm.CpInfo.show
jvm.DeprecatedAttribute.show
jvm.ElementValue.show
jvm.ElementValuePair.show
jvm.EmptyConstant.show
jvm.EnclosingMethodAttribute.show
jvm.ExceptionsAttribute.show
jvm.FieldInfo.show
jvm.FullFrame.show
jvm.InnerClassesAttribute.show
jvm.InnerClassesDesc.show
jvm.JAR.show
jvm.JBC.show
jvm.JVMFormat.show
jvm.JavaCode.show
jvm.LineNumberTableAttribute.show
jvm.LocalVariableTableAttribute.show
jvm.LocalVariableTypeTableAttribute.show
jvm.MethodInfo.show
jvm.ParameterAnnotation.show
jvm.RuntimeInvisibleAnnotationsAttribute.show
jvm.RuntimeInvisibleParameterAnnotationsAttribute.show
jvm.RuntimeVisibleAnnotationsAttribute.show
jvm.RuntimeVisibleParameterAnnotationsAttribute.show
jvm.SameFrame.show
jvm.SameFrameExtended.show
jvm.SameLocals1StackItemFrame.show
jvm.SameLocals1StackItemFrameExtended.show
jvm.SignatureAttribute.show
jvm.SourceDebugExtensionAttribute.show
jvm.SourceFileAttribute.show
jvm.StackMapTableAttribute.show
jvm.SyntheticAttribute.show
jvm.VerificationTypeInfo.show" class="py-name" href="#" onclick="return doclink('link-160', 'show', 'link-35');">show</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
</div><a name="L360"></a><tt class="py-lineno">360</tt>  <tt class="py-line"> </tt>
<a name="Androguard.pretty_show"></a><div id="Androguard.pretty_show-def"><a name="L361"></a><tt class="py-lineno">361</tt> <a class="py-toggle" href="#" id="Androguard.pretty_show-toggle" onclick="return toggle('Androguard.pretty_show');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="androguard.Androguard-class.html#pretty_show">pretty_show</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> </tt>
</div><div id="Androguard.pretty_show-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Androguard.pretty_show-expanded"><a name="L362"></a><tt class="py-lineno">362</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
<a name="L363"></a><tt class="py-lineno">363</tt>  <tt class="py-line"><tt class="py-docstring">           Display all files</tt> </tt>
<a name="L364"></a><tt class="py-lineno">364</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
<a name="L365"></a><tt class="py-lineno">365</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">_</tt><tt class="py-op">,</tt> <tt class="py-name">bc</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__bc</tt> <tt class="py-op">:</tt> </tt>
<a name="L366"></a><tt class="py-lineno">366</tt>  <tt class="py-line">            <tt class="py-name">bc</tt><tt class="py-op">.</tt><tt id="link-161" class="py-name"><a title="androguard.Androguard.pretty_show
androguard.BC.pretty_show
dvm.ClassDataItem.pretty_show
dvm.DCode.pretty_show
dvm.DalvikCode.pretty_show
dvm.DalvikVMFormat.pretty_show
dvm.EncodedMethod.pretty_show
dvm.MapItem.pretty_show
dvm.MapList.pretty_show
jvm.AttributeInfo.pretty_show
jvm.CodeAttribute.pretty_show
jvm.JVMFormat.pretty_show
jvm.JavaCode.pretty_show
jvm.MethodInfo.pretty_show" class="py-name" href="#" onclick="return doclink('link-161', 'pretty_show', 'link-108');">pretty_show</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
</div><a name="L367"></a><tt class="py-lineno">367</tt>  <tt class="py-line"> </tt>
<a name="Androguard.do"></a><div id="Androguard.do-def"><a name="L368"></a><tt class="py-lineno">368</tt> <a class="py-toggle" href="#" id="Androguard.do-toggle" onclick="return toggle('Androguard.do');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="androguard.Androguard-class.html#do">do</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">fileconf</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> </tt>
</div><div id="Androguard.do-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Androguard.do-expanded"><a name="L369"></a><tt class="py-lineno">369</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-162" class="py-name" targets="Method androguard.Androguard.ianalyze()=androguard.Androguard-class.html#ianalyze"><a title="androguard.Androguard.ianalyze" class="py-name" href="#" onclick="return doclink('link-162', 'ianalyze', 'link-162');">ianalyze</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L370"></a><tt class="py-lineno">370</tt>  <tt class="py-line"> </tt>
<a name="L371"></a><tt class="py-lineno">371</tt>  <tt class="py-line">        <tt class="py-name">fd</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">fileconf</tt><tt class="py-op">,</tt> <tt class="py-string">"rb"</tt><tt class="py-op">)</tt> </tt>
<a name="L372"></a><tt class="py-lineno">372</tt>  <tt class="py-line">        <tt class="py-name">buffxml</tt> <tt class="py-op">=</tt> <tt class="py-name">fd</tt><tt class="py-op">.</tt><tt id="link-163" class="py-name"><a title="apk.ChilkatZip.read
bytecode.BuffHandle.read
bytecode._Bytecode.read" class="py-name" href="#" onclick="return doclink('link-163', 'read', 'link-39');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L373"></a><tt class="py-lineno">373</tt>  <tt class="py-line">        <tt class="py-name">fd</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L374"></a><tt class="py-lineno">374</tt>  <tt class="py-line"> </tt>
<a name="L375"></a><tt class="py-lineno">375</tt>  <tt class="py-line">        <tt class="py-name">document</tt> <tt class="py-op">=</tt> <tt class="py-name">xml</tt><tt class="py-op">.</tt><tt class="py-name">dom</tt><tt class="py-op">.</tt><tt class="py-name">minidom</tt><tt class="py-op">.</tt><tt class="py-name">parseString</tt><tt class="py-op">(</tt><tt class="py-name">buffxml</tt><tt class="py-op">)</tt> </tt>
<a name="L376"></a><tt class="py-lineno">376</tt>  <tt class="py-line"> </tt>
<a name="L377"></a><tt class="py-lineno">377</tt>  <tt class="py-line">        <tt class="py-name">main_path</tt> <tt class="py-op">=</tt> <tt class="py-name">document</tt><tt class="py-op">.</tt><tt class="py-name">getElementsByTagName</tt><tt class="py-op">(</tt> <tt class="py-string">"main_path"</tt> <tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">firstChild</tt><tt class="py-op">.</tt><tt class="py-name">data</tt> </tt>
<a name="L378"></a><tt class="py-lineno">378</tt>  <tt class="py-line">        <tt class="py-name">libs_path</tt> <tt class="py-op">=</tt> <tt class="py-name">document</tt><tt class="py-op">.</tt><tt class="py-name">getElementsByTagName</tt><tt class="py-op">(</tt> <tt class="py-string">"libs_path"</tt> <tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">firstChild</tt><tt class="py-op">.</tt><tt class="py-name">data</tt> </tt>
<a name="L379"></a><tt class="py-lineno">379</tt>  <tt class="py-line"> </tt>
<a name="L380"></a><tt class="py-lineno">380</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">document</tt><tt class="py-op">.</tt><tt class="py-name">getElementsByTagName</tt><tt class="py-op">(</tt> <tt class="py-string">"watermark"</tt> <tt class="py-op">)</tt> <tt class="py-op">!=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> <tt class="py-op">:</tt> </tt>
<a name="L381"></a><tt class="py-lineno">381</tt>  <tt class="py-line">            <tt class="py-name">watermark_item</tt> <tt class="py-op">=</tt> <tt class="py-name">document</tt><tt class="py-op">.</tt><tt class="py-name">getElementsByTagName</tt><tt class="py-op">(</tt> <tt class="py-string">"watermark"</tt> <tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
<a name="L382"></a><tt class="py-lineno">382</tt>  <tt class="py-line">            <tt class="py-name">watermark_types</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
<a name="L383"></a><tt class="py-lineno">383</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt class="py-name">item</tt> <tt class="py-keyword">in</tt> <tt class="py-name">watermark_item</tt><tt class="py-op">.</tt><tt class="py-name">getElementsByTagName</tt><tt class="py-op">(</tt> <tt class="py-string">"type"</tt> <tt class="py-op">)</tt> <tt class="py-op">:</tt> </tt>
<a name="L384"></a><tt class="py-lineno">384</tt>  <tt class="py-line">                <tt class="py-name">watermark_types</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt> <tt class="py-name">item</tt><tt class="py-op">.</tt><tt class="py-name">firstChild</tt><tt class="py-op">.</tt><tt class="py-name">data</tt> <tt class="py-op">)</tt> <tt class="py-op">)</tt> </tt>
<a name="L385"></a><tt class="py-lineno">385</tt>  <tt class="py-line">            <tt class="py-name">watermark_output</tt> <tt class="py-op">=</tt> <tt class="py-name">watermark_item</tt><tt class="py-op">.</tt><tt class="py-name">getElementsByTagName</tt><tt class="py-op">(</tt> <tt class="py-string">"output"</tt> <tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">firstChild</tt><tt class="py-op">.</tt><tt class="py-name">data</tt> </tt>
<a name="L386"></a><tt class="py-lineno">386</tt>  <tt class="py-line">            <tt class="py-keyword">print</tt> <tt class="py-name">watermark_types</tt><tt class="py-op">,</tt> <tt class="py-string">"---&gt;"</tt><tt class="py-op">,</tt> <tt class="py-name">watermark_output</tt> </tt>
<a name="L387"></a><tt class="py-lineno">387</tt>  <tt class="py-line"> </tt>
<a name="L388"></a><tt class="py-lineno">388</tt>  <tt class="py-line">            <tt class="py-name">fd</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">watermark_output</tt><tt class="py-op">,</tt> <tt class="py-string">"w"</tt><tt class="py-op">)</tt> </tt>
<a name="L389"></a><tt class="py-lineno">389</tt>  <tt class="py-line"> </tt>
<a name="L390"></a><tt class="py-lineno">390</tt>  <tt class="py-line">            <tt class="py-name">fd</tt><tt class="py-op">.</tt><tt class="py-name">write</tt><tt class="py-op">(</tt><tt class="py-string">"&lt;?xml version=\"1.0\"?&gt;\n"</tt><tt class="py-op">)</tt> </tt>
<a name="L391"></a><tt class="py-lineno">391</tt>  <tt class="py-line">            <tt class="py-name">fd</tt><tt class="py-op">.</tt><tt class="py-name">write</tt><tt class="py-op">(</tt><tt class="py-string">"&lt;andro id=\"androguard wm\"&gt;\n"</tt><tt class="py-op">)</tt> </tt>
<a name="L392"></a><tt class="py-lineno">392</tt>  <tt class="py-line">            <tt class="py-name">wms</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
<a name="L393"></a><tt class="py-lineno">393</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt id="link-164" class="py-name"><a title="analysis.i
jvm.i" class="py-name" href="#" onclick="return doclink('link-164', 'i', 'link-42');">i</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-165" class="py-name"><a title="androguard.Androguard.get_bc
dvm.DalvikCode.get_bc
jvm.CodeAttribute.get_bc" class="py-name" href="#" onclick="return doclink('link-165', 'get_bc', 'link-26');">get_bc</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> </tt>
<a name="L394"></a><tt class="py-lineno">394</tt>  <tt class="py-line">                <tt class="py-keyword">for</tt> <tt class="py-name">class_name</tt> <tt class="py-keyword">in</tt> <tt id="link-166" class="py-name"><a title="analysis.i
jvm.i" class="py-name" href="#" onclick="return doclink('link-166', 'i', 'link-42');">i</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-167" class="py-name" targets="Method dvm.DalvikVMFormat.get_classes_names()=dvm.DalvikVMFormat-class.html#get_classes_names,Method jvm.JVMFormat.get_classes_names()=jvm.JVMFormat-class.html#get_classes_names"><a title="dvm.DalvikVMFormat.get_classes_names
jvm.JVMFormat.get_classes_names" class="py-name" href="#" onclick="return doclink('link-167', 'get_classes_names', 'link-167');">get_classes_names</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> </tt>
<a name="L395"></a><tt class="py-lineno">395</tt>  <tt class="py-line">                    <tt class="py-name">wm</tt> <tt class="py-op">=</tt> <tt id="link-168" class="py-name"><a title="androguard.WM" class="py-name" href="#" onclick="return doclink('link-168', 'WM', 'link-36');">WM</a></tt><tt class="py-op">(</tt> <tt id="link-169" class="py-name"><a title="analysis.i
jvm.i" class="py-name" href="#" onclick="return doclink('link-169', 'i', 'link-42');">i</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">class_name</tt><tt class="py-op">,</tt> <tt class="py-name">watermark_types</tt> <tt class="py-op">)</tt> </tt>
<a name="L396"></a><tt class="py-lineno">396</tt>  <tt class="py-line">                    <tt class="py-name">fd</tt><tt class="py-op">.</tt><tt class="py-name">write</tt><tt class="py-op">(</tt> <tt class="py-name">wm</tt><tt class="py-op">.</tt><tt id="link-170" class="py-name"><a title="analysis.BasicBlocks.get
analysis.Stack.get
analysis.StackTraces.get
analysis.TaintedInteger.get
androguard.Androguard.get
androguard.BC.get
androguard.WM.get
dvm.DCode.get
dvm.IdItem.get
dvm.MethodIdItem.get
dvm.ProtoIdItem.get
dvm.StringDataItem.get
dvm.TypeIdItem.get
jvm.JavaCode.get" class="py-name" href="#" onclick="return doclink('link-170', 'get', 'link-27');">get</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-171" class="py-name"><a title="analysis.StackTraces.save
androguard.Androguard.save
androguard.AndroguardS.save
androguard.BC.save
bytecode._Bytecode.save
dvm.DalvikVMFormat.save
jvm.JVMFormat.save" class="py-name" href="#" onclick="return doclink('link-171', 'save', 'link-109');">save</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt> </tt>
<a name="L397"></a><tt class="py-lineno">397</tt>  <tt class="py-line">            <tt class="py-name">fd</tt><tt class="py-op">.</tt><tt class="py-name">write</tt><tt class="py-op">(</tt><tt class="py-string">"&lt;/andro&gt;\n"</tt><tt class="py-op">)</tt> </tt>
<a name="L398"></a><tt class="py-lineno">398</tt>  <tt class="py-line">            <tt class="py-name">fd</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L399"></a><tt class="py-lineno">399</tt>  <tt class="py-line"> </tt>
<a name="L400"></a><tt class="py-lineno">400</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">document</tt><tt class="py-op">.</tt><tt class="py-name">getElementsByTagName</tt><tt class="py-op">(</tt> <tt class="py-string">"protect_code"</tt> <tt class="py-op">)</tt> <tt class="py-op">!=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> <tt class="py-op">:</tt> </tt>
<a name="L401"></a><tt class="py-lineno">401</tt>  <tt class="py-line">            <tt class="py-keyword">import</tt> <tt class="py-name">protection</tt> </tt>
<a name="L402"></a><tt class="py-lineno">402</tt>  <tt class="py-line"> </tt>
<a name="L403"></a><tt class="py-lineno">403</tt>  <tt class="py-line">            <tt class="py-name">protect_code_item</tt> <tt class="py-op">=</tt> <tt class="py-name">document</tt><tt class="py-op">.</tt><tt class="py-name">getElementsByTagName</tt><tt class="py-op">(</tt> <tt class="py-string">"protect_code"</tt> <tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
<a name="L404"></a><tt class="py-lineno">404</tt>  <tt class="py-line">            <tt class="py-name">protection</tt><tt class="py-op">.</tt><tt class="py-name">ProtectCode</tt><tt class="py-op">(</tt> <tt class="py-op">[</tt> <tt id="link-172" class="py-name"><a title="analysis.i
jvm.i" class="py-name" href="#" onclick="return doclink('link-172', 'i', 'link-42');">i</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-keyword">for</tt> <tt id="link-173" class="py-name"><a title="analysis.i
jvm.i" class="py-name" href="#" onclick="return doclink('link-173', 'i', 'link-42');">i</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-174" class="py-name"><a title="androguard.Androguard.get_bc
dvm.DalvikCode.get_bc
jvm.CodeAttribute.get_bc" class="py-name" href="#" onclick="return doclink('link-174', 'get_bc', 'link-26');">get_bc</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">main_path</tt> <tt class="py-op">+</tt> <tt class="py-name">libs_path</tt> <tt class="py-op">)</tt> </tt>
<a name="L405"></a><tt class="py-lineno">405</tt>  <tt class="py-line"> </tt>
<a name="L406"></a><tt class="py-lineno">406</tt>  <tt class="py-line"><tt class="py-comment">#      for item in document.getElementsByTagName('method') :</tt> </tt>
<a name="L407"></a><tt class="py-lineno">407</tt>  <tt class="py-line"><tt class="py-comment">#         if item.getElementsByTagName( PROTECT_VM_INTEGER )[0].firstChild != None :</tt> </tt>
<a name="L408"></a><tt class="py-lineno">408</tt>  <tt class="py-line"><tt class="py-comment">#            if item.getElementsByTagName( PROTECT_VM_INTEGER )[0].firstChild.data == "1" :</tt> </tt>
<a name="L409"></a><tt class="py-lineno">409</tt>  <tt class="py-line"><tt class="py-comment">#               vm_type = INVERT_VM_INT_TYPE[ item.getElementsByTagName( PROTECT_VM_INTEGER_TYPE )[0].firstChild.data ]</tt> </tt>
<a name="L410"></a><tt class="py-lineno">410</tt>  <tt class="py-line"><tt class="py-comment">#               VM_int( self, item.getAttribute('class'), item.getAttribute('name'), item.getAttribute('descriptor'), vm_type )</tt> </tt>
<a name="L411"></a><tt class="py-lineno">411</tt>  <tt class="py-line"> </tt>
<a name="L412"></a><tt class="py-lineno">412</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">document</tt><tt class="py-op">.</tt><tt class="py-name">getElementsByTagName</tt><tt class="py-op">(</tt> <tt class="py-string">"save_path"</tt> <tt class="py-op">)</tt> <tt class="py-op">!=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> <tt class="py-op">:</tt> </tt>
<a name="L413"></a><tt class="py-lineno">413</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-175" class="py-name"><a title="analysis.StackTraces.save
androguard.Androguard.save
androguard.AndroguardS.save
androguard.BC.save
bytecode._Bytecode.save
dvm.DalvikVMFormat.save
jvm.JVMFormat.save" class="py-name" href="#" onclick="return doclink('link-175', 'save', 'link-109');">save</a></tt><tt class="py-op">(</tt> <tt class="py-name">main_path</tt> <tt class="py-op">+</tt> <tt class="py-name">document</tt><tt class="py-op">.</tt><tt class="py-name">getElementsByTagName</tt><tt class="py-op">(</tt> <tt class="py-string">"save_path"</tt> <tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">firstChild</tt><tt class="py-op">.</tt><tt class="py-name">data</tt> <tt class="py-op">)</tt> </tt>
<a name="L414"></a><tt class="py-lineno">414</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt> <tt class="py-op">:</tt> </tt>
<a name="L415"></a><tt class="py-lineno">415</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-176" class="py-name"><a title="analysis.StackTraces.save
androguard.Androguard.save
androguard.AndroguardS.save
androguard.BC.save
bytecode._Bytecode.save
dvm.DalvikVMFormat.save
jvm.JVMFormat.save" class="py-name" href="#" onclick="return doclink('link-176', 'save', 'link-109');">save</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
</div><a name="L416"></a><tt class="py-lineno">416</tt>  <tt class="py-line"> </tt>
<a name="Androguard.save"></a><div id="Androguard.save-def"><a name="L417"></a><tt class="py-lineno">417</tt> <a class="py-toggle" href="#" id="Androguard.save-toggle" onclick="return toggle('Androguard.save');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="androguard.Androguard-class.html#save">save</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">output_dir</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> </tt>
</div><div id="Androguard.save-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Androguard.save-expanded"><a name="L418"></a><tt class="py-lineno">418</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">file_name</tt><tt class="py-op">,</tt> <tt class="py-name">bc</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-177" class="py-name"><a title="androguard.Androguard.get_bc
dvm.DalvikCode.get_bc
jvm.CodeAttribute.get_bc" class="py-name" href="#" onclick="return doclink('link-177', 'get_bc', 'link-26');">get_bc</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> </tt>
<a name="L419"></a><tt class="py-lineno">419</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">output_dir</tt> <tt class="py-op">==</tt> <tt class="py-name">None</tt> <tt class="py-op">:</tt> </tt>
<a name="L420"></a><tt class="py-lineno">420</tt>  <tt class="py-line">                <tt class="py-name">output_file_name</tt> <tt class="py-op">=</tt> <tt class="py-name">file_name</tt> </tt>
<a name="L421"></a><tt class="py-lineno">421</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt> <tt class="py-op">:</tt> </tt>
<a name="L422"></a><tt class="py-lineno">422</tt>  <tt class="py-line">                <tt class="py-name">output_file_name</tt> <tt class="py-op">=</tt> <tt class="py-name">output_dir</tt> <tt class="py-op">+</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">basename</tt><tt class="py-op">(</tt> <tt class="py-name">file_name</tt> <tt class="py-op">)</tt> </tt>
<a name="L423"></a><tt class="py-lineno">423</tt>  <tt class="py-line"> </tt>
<a name="L424"></a><tt class="py-lineno">424</tt>  <tt class="py-line">            <tt class="py-keyword">print</tt> <tt class="py-string">"[+] [AG] SAVING ... "</tt><tt class="py-op">,</tt> <tt class="py-name">output_file_name</tt> </tt>
<a name="L425"></a><tt class="py-lineno">425</tt>  <tt class="py-line">            <tt class="py-name">fd</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">output_file_name</tt><tt class="py-op">,</tt> <tt class="py-string">"w"</tt><tt class="py-op">)</tt> </tt>
<a name="L426"></a><tt class="py-lineno">426</tt>  <tt class="py-line">            <tt class="py-name">fd</tt><tt class="py-op">.</tt><tt class="py-name">write</tt><tt class="py-op">(</tt> <tt class="py-name">bc</tt><tt class="py-op">.</tt><tt id="link-178" class="py-name"><a title="analysis.StackTraces.save
androguard.Androguard.save
androguard.AndroguardS.save
androguard.BC.save
bytecode._Bytecode.save
dvm.DalvikVMFormat.save
jvm.JVMFormat.save" class="py-name" href="#" onclick="return doclink('link-178', 'save', 'link-109');">save</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt> </tt>
<a name="L427"></a><tt class="py-lineno">427</tt>  <tt class="py-line">            <tt class="py-name">fd</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
</div></div><a name="L428"></a><tt class="py-lineno">428</tt>  <tt class="py-line"> </tt>
<a name="AndroguardS"></a><div id="AndroguardS-def"><a name="L429"></a><tt class="py-lineno">429</tt> <a class="py-toggle" href="#" id="AndroguardS-toggle" onclick="return toggle('AndroguardS');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="androguard.AndroguardS-class.html">AndroguardS</a> <tt class="py-op">:</tt> </tt>
</div><div id="AndroguardS-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="AndroguardS-expanded"><a name="L430"></a><tt class="py-lineno">430</tt>  <tt class="py-line">    <tt class="py-docstring">"""AndroguardS is the main object to abstract and manage differents formats but only per filename. In fact this class is just a wrapper to the main class Androguard</tt> </tt>
<a name="L431"></a><tt class="py-lineno">431</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
<a name="L432"></a><tt class="py-lineno">432</tt>  <tt class="py-line"><tt class="py-docstring">       @param filename : the filename to use (filename must be terminated by .class or .dex)</tt> </tt>
<a name="L433"></a><tt class="py-lineno">433</tt>  <tt class="py-line"><tt class="py-docstring">       @param raw : specify if the filename is a raw buffer (default : False)</tt> </tt>
<a name="L434"></a><tt class="py-lineno">434</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
<a name="AndroguardS.__init__"></a><div id="AndroguardS.__init__-def"><a name="L435"></a><tt class="py-lineno">435</tt> <a class="py-toggle" href="#" id="AndroguardS.__init__-toggle" onclick="return toggle('AndroguardS.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="androguard.AndroguardS-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">filename</tt><tt class="py-op">,</tt> <tt class="py-param">raw</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> </tt>
</div><div id="AndroguardS.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="AndroguardS.__init__-expanded"><a name="L436"></a><tt class="py-lineno">436</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__filename</tt> <tt class="py-op">=</tt> <tt class="py-name">filename</tt> </tt>
<a name="L437"></a><tt class="py-lineno">437</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__orig_a</tt> <tt class="py-op">=</tt> <tt id="link-179" class="py-name" targets="Class androguard.Androguard=androguard.Androguard-class.html"><a title="androguard.Androguard" class="py-name" href="#" onclick="return doclink('link-179', 'Androguard', 'link-179');">Androguard</a></tt><tt class="py-op">(</tt> <tt class="py-op">[</tt> <tt class="py-name">filename</tt> <tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">raw</tt> <tt class="py-op">)</tt> </tt>
<a name="L438"></a><tt class="py-lineno">438</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__a</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__orig_a</tt><tt class="py-op">.</tt><tt id="link-180" class="py-name"><a title="analysis.BasicBlocks.get
analysis.Stack.get
analysis.StackTraces.get
analysis.TaintedInteger.get
androguard.Androguard.get
androguard.BC.get
androguard.WM.get
dvm.DCode.get
dvm.IdItem.get
dvm.MethodIdItem.get
dvm.ProtoIdItem.get
dvm.StringDataItem.get
dvm.TypeIdItem.get
jvm.JavaCode.get" class="py-name" href="#" onclick="return doclink('link-180', 'get', 'link-27');">get</a></tt><tt class="py-op">(</tt> <tt class="py-string">"file"</tt><tt class="py-op">,</tt> <tt class="py-name">filename</tt> <tt class="py-op">)</tt> </tt>
</div><a name="L439"></a><tt class="py-lineno">439</tt>  <tt class="py-line"> </tt>
<a name="AndroguardS.get_orig_raw"></a><div id="AndroguardS.get_orig_raw-def"><a name="L440"></a><tt class="py-lineno">440</tt> <a class="py-toggle" href="#" id="AndroguardS.get_orig_raw-toggle" onclick="return toggle('AndroguardS.get_orig_raw');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="androguard.AndroguardS-class.html#get_orig_raw">get_orig_raw</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> </tt>
</div><div id="AndroguardS.get_orig_raw-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="AndroguardS.get_orig_raw-expanded"><a name="L441"></a><tt class="py-lineno">441</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__orig_a</tt><tt class="py-op">.</tt><tt id="link-181" class="py-name" targets="Method androguard.Androguard.get_orig_raw()=androguard.Androguard-class.html#get_orig_raw,Method androguard.AndroguardS.get_orig_raw()=androguard.AndroguardS-class.html#get_orig_raw"><a title="androguard.Androguard.get_orig_raw
androguard.AndroguardS.get_orig_raw" class="py-name" href="#" onclick="return doclink('link-181', 'get_orig_raw', 'link-181');">get_orig_raw</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__filename</tt> <tt class="py-op">]</tt> </tt>
</div><a name="L442"></a><tt class="py-lineno">442</tt>  <tt class="py-line"> </tt>
<a name="AndroguardS.get_vm"></a><div id="AndroguardS.get_vm-def"><a name="L443"></a><tt class="py-lineno">443</tt> <a class="py-toggle" href="#" id="AndroguardS.get_vm-toggle" onclick="return toggle('AndroguardS.get_vm');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="androguard.AndroguardS-class.html#get_vm">get_vm</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> </tt>
</div><div id="AndroguardS.get_vm-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="AndroguardS.get_vm-expanded"><a name="L444"></a><tt class="py-lineno">444</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
<a name="L445"></a><tt class="py-lineno">445</tt>  <tt class="py-line"><tt class="py-docstring">           This method returns the VMFormat which correspond to the file</tt> </tt>
<a name="L446"></a><tt class="py-lineno">446</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
<a name="L447"></a><tt class="py-lineno">447</tt>  <tt class="py-line"><tt class="py-docstring">           @rtype: L{jvm.JVMFormat} or L{dvm.DalvikVMFormat}</tt> </tt>
<a name="L448"></a><tt class="py-lineno">448</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
<a name="L449"></a><tt class="py-lineno">449</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__a</tt><tt class="py-op">.</tt><tt id="link-182" class="py-name"><a title="analysis.MethodAnalysis.get_vm
androguard.AndroguardS.get_vm
androguard.BC.get_vm" class="py-name" href="#" onclick="return doclink('link-182', 'get_vm', 'link-37');">get_vm</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
</div><a name="L450"></a><tt class="py-lineno">450</tt>  <tt class="py-line"> </tt>
<a name="AndroguardS.save"></a><div id="AndroguardS.save-def"><a name="L451"></a><tt class="py-lineno">451</tt> <a class="py-toggle" href="#" id="AndroguardS.save-toggle" onclick="return toggle('AndroguardS.save');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="androguard.AndroguardS-class.html#save">save</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> </tt>
</div><div id="AndroguardS.save-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="AndroguardS.save-expanded"><a name="L452"></a><tt class="py-lineno">452</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
<a name="L453"></a><tt class="py-lineno">453</tt>  <tt class="py-line"><tt class="py-docstring">           Return the original format (with the modifications) into raw format</tt> </tt>
<a name="L454"></a><tt class="py-lineno">454</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
<a name="L455"></a><tt class="py-lineno">455</tt>  <tt class="py-line"><tt class="py-docstring">           @rtype: string</tt> </tt>
<a name="L456"></a><tt class="py-lineno">456</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
<a name="L457"></a><tt class="py-lineno">457</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__a</tt><tt class="py-op">.</tt><tt id="link-183" class="py-name"><a title="analysis.StackTraces.save
androguard.Androguard.save
androguard.AndroguardS.save
androguard.BC.save
bytecode._Bytecode.save
dvm.DalvikVMFormat.save
jvm.JVMFormat.save" class="py-name" href="#" onclick="return doclink('link-183', 'save', 'link-109');">save</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
</div><a name="L458"></a><tt class="py-lineno">458</tt>  <tt class="py-line"> </tt>
<a name="AndroguardS.__getattr__"></a><div id="AndroguardS.__getattr__-def"><a name="L459"></a><tt class="py-lineno">459</tt> <a class="py-toggle" href="#" id="AndroguardS.__getattr__-toggle" onclick="return toggle('AndroguardS.__getattr__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="androguard.AndroguardS-class.html#__getattr__">__getattr__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">value</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> </tt>
</div><div id="AndroguardS.__getattr__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="AndroguardS.__getattr__-expanded"><a name="L460"></a><tt class="py-lineno">460</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt> <tt class="py-op">:</tt> </tt>
<a name="L461"></a><tt class="py-lineno">461</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">getattr</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__orig_a</tt><tt class="py-op">,</tt> <tt class="py-name">value</tt><tt class="py-op">)</tt> </tt>
<a name="L462"></a><tt class="py-lineno">462</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">AttributeError</tt> <tt class="py-op">:</tt> </tt>
<a name="L463"></a><tt class="py-lineno">463</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">getattr</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__a</tt><tt class="py-op">,</tt> <tt class="py-name">value</tt><tt class="py-op">)</tt> </tt>
</div></div><a name="L464"></a><tt class="py-lineno">464</tt>  <tt class="py-line"> </tt><script type="text/javascript">
<!--
expandto(location.href);
// -->
</script>
</pre>
<br />
<!-- ==================== NAVIGATION BAR ==================== -->
<table class="navbar" border="0" width="100%" cellpadding="0"
       bgcolor="#a0c0ff" cellspacing="0">
  <tr valign="middle">

  <!-- Tree link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Index link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Help link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Project homepage -->
      <th class="navbar" align="right" width="100%">
        <table border="0" cellpadding="0" cellspacing="0">
          <tr><th class="navbar" align="center"
            ><a class="navbar" target="_top" href="http://code.google.com/p/androguard/">Androguard</a></th>
          </tr></table></th>
  </tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
  <tr>
    <td align="left" class="footer">
    Generated by Epydoc 3.0.1 on Wed May 18 15:57:06 2011
    </td>
    <td align="right" class="footer">
      <a target="mainFrame" href="http://epydoc.sourceforge.net"
        >http://epydoc.sourceforge.net</a>
    </td>
  </tr>
</table>

<script type="text/javascript">
  <!--
  // Private objects are initially displayed (because if
  // javascript is turned off then we want them to be
  // visible); but by default, we want to hide them.  So hide
  // them unless we have a cookie that says to show them.
  checkCookie();
  // -->
</script>
</body>
</html>
